iOS7_关于UISwitch_02_如何自定义UISwitch_如何设定UISwitch的默认开关状态_如何监听 Switch开关状态

前言

上一篇博文,我们介绍了一下如何实现 UISwitch ,我们这次介绍下如何自定义 UISwitch。

原文连接:http://www.cnblogs.com/LeoYoung/p/qq907596253.html

正文

1、我们先在界面上实现一个 UISwitch。

     a>在 控制器.m 文件中,添加一个UISwitch的属性。

 1 @interface moboViewController ()

@property (nonatomic, strong) UISwitch *mainSwtich;

@end 

b>在 - (void)viewDidAppear 方法中实例化一个 UISwitch 并添加到界面上。

 

 1 - (void)viewDidAppear:(BOOL)animated
 2 {
 3     [super viewDidLoad];
 4     
 5     self.mainSwtich = [[UISwitch alloc]initWithFrame:CGRectMake(100, 100, 0, 0)];//实例化,坐标为 x100,y100
 6     
 7     [self.view addSubview:self.mainSwtich];   //添加到界面
 8 }

 

2、自定义开关颜色:

我们首先按住 cmd,进入UISwitch头文件。看到三个属性:

UIColor *onTintColor  // 开启时颜色

 

 

UIColor *tintColor    // 关闭时颜色

 

UIColor *thumbTintColor // 开关按钮颜色

下面我们来自定义一下,在- (void)viewDidAppear中添加如下代码:

1     self.mainSwtich.thumbTintColor = [UIColor colorWithRed:(151./255.0) green:(81./255.0) blue:(229./255.0) alpha:1];
2     
3     self.mainSwtich.tintColor = [UIColor colorWithRed:(51./255.0) green:(181./255.0) blue:(229./255.0) alpha:1];
4     
5     self.mainSwtich.onTintColor = [UIColor colorWithRed:(51./255.0) green:(181./255.0) blue:(229./255.0) alpha:1];

注:我们用到了UIColor 类的 colorWithRed:green:blue: 方法,这个方法的色值是浮点型,所以必须用"色值./255.0",色值最好后面带一个 . ,显得专业一点~~~

      另外色值转换神马的,有一个网站支持在线转换:http://www.atool.org/colorpicker.php

3、我们来设定UISwitch的默认开关状态:

这个很简单,在 - (void)viewDidAppear方法中添加如下代码:

 1 [self.mainSwtich setOn:YES animated:YES]; 

 

4、监听 UISwitch 的开关状态:

 1 [self.mainSwtich addTarget:self action:@selector(switchIsChanged:) forControlEvents:UIControlEventValueChanged]; 

再在- (void) viewDidAppear 下面,实现一下 switchIsChanged 方法:

1 - (void)switchIsChanged:(UISwitch *)paramSender
2 {
3     if ([self.mainSwtich isOn]) {
4         NSLog(@"Switch is on");
5     }
6     else{
7         NSLog(@"Switch is off");
8     }
9 }

 

CMD+R跑一下,点一点 开关,观察控制台就可以看得到控制台的打印结果了!

posted @ 2014-08-25 12:23  杨东升  阅读(3562)  评论(0编辑  收藏  举报