zoukankan      html  css  js  c++  java
  • UISwitch开关控件属性介绍以及获取开关状态并做出响应

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

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

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

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

     1 - (void)viewDidLoad {
     2     //实例化一个开关控件
     3     UISwitch *swi1=[[UISwitch alloc]init];
     4     //设置位置和大小,发现大小无效。即开关控件大小不受影响,还是那么
     5     swi1.frame=CGRectMake(30, 100, 300, 80);
     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 }
    让明天,不后悔今天的所作所为
  • 相关阅读:
    微信小程序HTTPS
    微信商城-1简介
    va_list
    Event log c++ sample.
    EVENT LOGGING
    Analyze Program Runtime Stack
    unknow table alarmtemp error when drop database (mysql)
    This application has request the Runtime to terminate it in an unusual way.
    How to check if Visual Studio 2005 SP1 is installed
    SetUnhandledExceptionFilter
  • 原文地址:https://www.cnblogs.com/-yun/p/4843991.html
Copyright © 2011-2022 走看看