iOS开发UISwitch开关控件属性介绍以及获取开关状态并做出响应

来源:互联网 发布:数据字典包括哪些内容 编辑:程序博客网 时间:2024/05/21 10:04

转载自:http://blog.csdn.net/weisubao/article/details/39576685

(1)UISwitch的大小也是固定的,不随我们frame设置的大小改变;也是裁剪成圆角的,设置背景就露马脚发现背景是矩形。


(2)UISwitch的背景图片设置无效,即我们只能设置颜色,不能用图片当背景,虽然实验了很小的图片,也是不行。可能需要借助第三方类来实现。


(3)UISwitch也可以增加addTarget:方法,来获取值变动的操作,从而做出响应的反应。


(4).isOn属性比较特殊,不能设置值,因为是哥getter方法,不是setter方法,所以只能获取值,例如判断是否开启,一般用在if语句中。


[objc] view plaincopy在CODE上查看代码片派生到我的代码片
  1. - (void)viewDidLoad {  
  2.     //实例化一个开关控件  
  3.     UISwitch *swi1=[[UISwitch alloc]init];  
  4.     //设置位置和大小,发现大小无效。即开关控件大小不受影响,还是那么  
  5.     swi1.frame=CGRectMake(3010030080);  
  6.     //设置背景,发现上面设置的框的大小确实无效,因为背景只有控件那么大,并不是设置的那么大,而且控件是圆角  
  7.     swi1.backgroundColor=[UIColor redColor];  
  8.     //设置ON一边的背景颜色,默认是绿色  
  9.     swi1.onTintColor=[UIColor yellowColor];  
  10.     //设置OFF一边的背景颜色,默认是灰色,发现OFF背景颜色其实也是控件”边框“颜色  
  11.     swi1.tintColor=[UIColor purpleColor];  
  12.     //设置滑块颜色  
  13.     swi1.thumbTintColor=[UIColor greenColor];  
  14.     swi1.onImage=[UIImage imageNamed:@"1.png"];//无效  
  15.     swi1.offImage=[UIImage imageNamed:@"logo.png"];//无效  
  16.     //设置成开启病设置动画形式出现,当然也可以直接用[swi1 setOn:YES];  
  17.     [swi1 setOn:YES animated:YES];  
  18.     //开关控件默认是关闭的,setOn可以默认成打开,所以其实它在显示的时候有一个打开的动作,但这个动作不发送消息,即捕捉不到  
  19.     //如我们做个试验,弄个针对“值变动”所引发的操作,即值发生变动,开启输出“On”,关闭输出“Off”  
  20.     //发现第一次并没有输出On,我们自己手动从关闭到开启时会有On和Off  
  21.     //所以这个setOn虽然是一个开启动作,但我们可以认为它相当于是内置了,我们看不到这个动作,所以捕捉不到  
  22.     //但这里我们练习了获取值变动病利用isOn来做相应的操作  
  23.     [swi1 addTarget:self action:@selector(getValue1:) forControlEvents:UIControlEventValueChanged];  
  24.       
  25.     //isOn是一个getter方法,所以不能够赋值,即不能用swi.isOn=YES,只能取得当前结果,一般用于判断是否是开启状态  
  26.     if (swi1.isOn) {  
  27.         NSLog(@"It is On");  
  28.     }  
  29.       
  30.     [self.view addSubview:swi1];  
  31.     [super viewDidLoad];  
  32.     // Do any additional setup after loading the view, typically from a nib.  
  33. }  
  34.   
  35. -(void)getValue1:(id)sender{  
  36.     UISwitch *swi2=(UISwitch *)sender;  
  37.     if (swi2.isOn) {  
  38.         NSLog(@"On");  
  39.     }else{  
  40.         NSLog(@"Off");  
  41.     }  
  42. }  

0 0