上一篇笔记以及之前部分笔记里面有些属性设置了没效果,比如UISwitch开关控件的开关背景图片;或者直接没有那种我们想要的属性,比如直接用代码设置控件大小。
所以,我们需要用第三方类库,意思大概是我们不用UISwitch类来实例化一个对象了,而是用第三方的类来实例化一个对象,然后这个对象可以进行各种修改随心所欲。
当然,这里的逻辑就是,我们要导入第三方类库,可能需要把它头文件神马的引入进来,然后就可以实例化,但是如何用第三方类库?cocoapods神器。
安装和使用教程如下:点击这里(相当齐全)
(1)gem是ruby环境下的软件管理命令,类似于Linux的yum,所以Linux下安装时yum install,那么这里就是gem install。
(2)但是gem install安装时它去找源程序时被“墙”了,所以我们需要把gem源换成国内的一个http://ruby.taobao.org/,我们去这个网站的时候,它自己也有教程教大家如何更换gem源,但它官方的教程里面是https,按照官方的https的话会出现找到这个网站的情况,用http发现正常,建议大家还是用上面教程的http。
(3)我们找到一个针对UISwitch的第三方类库,基本都是在github上的,此处用的时bvogelzang老师的SevenSwitch。用pod
search SevenSwitch(大小写可不分)可以搜索到。
(4)找到了就安装呗,安装其实就是在项目目录里面创建一个Podfile,在里面写上我们需要安装的文件和版本等等。这个项目目录就是我们在create这个项目的时候,选择保存的路径,而不是在【iOS开发-3】里讲得沙盒里面的程序路径。
(5)先按照bvogelzang老师的文档写‘~> 2.0’,然后pod install时发现找不到这个文件,我们之前用pod search SevenSwith发现这个文件是1.4.0版本,我们尝试继续vim PodFile把里面改成‘~> 1.4.0’,运行pod install 成功。
(6)然后打开它提示的以.xcworkspace后缀的文件,名字还是我们的项目名字,我们可以打开我们的项目目录,这样可以清晰的看见发生了什么变化(新增了几个文件)。
(7)在我们常用的ViewController.m文件里引入SevenSwit.h头文件,这样我们就可以实例化对象并疯狂定制。
(8)OVER。学到如何利用第三方类库进行iOS开发的知识。
代码如下:
#import "ViewController.h" //引入头文件即可 #import "SevenSwitch.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { //用SevenSwitch初始化一个对象 SevenSwitch *swi3=[[SevenSwitch alloc]init]; //可以设置开关大小了,即高宽设置有效果了 swi3.frame=CGRectMake(30, 30, 100, 40); //设置开、关、滑块的背景图片,有效 swi3.onImage=[UIImage imageNamed:@"1.png"]; swi3.offImage=[UIImage imageNamed:@"3.png"]; swi3.thumbImage=[UIImage imageNamed:@"small.png"]; //设置开关的文字,官方的时On和Off [email protected]"开"; [email protected]"关"; //把圆角变成直角,即变成方形的开关 swi3.isRounded=false; //原先的属性照常使用,如设置默认为开 [swi3 setOn:YES]; //设置边框颜色,在关的时候可以看见,因为开启的时候是默认的绿色背景 swi3.borderColor=[UIColor purpleColor]; //当然还有激活和未激活状态时的颜色,这个暂时还不知道怎么用,但是确实很丰富,有木有 swi3.activeColor=[UIColor grayColor]; swi3.inactiveColor=[UIColor redColor]; //当然,不能忘记它照样可以使用操作 [swi3 addTarget:self action:@selector(getValue1:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:swi3]; [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } @end
效果截个图: