前言
上一篇博文,我們介紹了一下如何實現 UISwitch ,我們這次介紹下如何自定義 UISwitch。
原文連接:http://www.cnblogs.com/LeoYoung/p/qq907596253.html
正文
1、我們先在界面上實現一個 UISwitch。
a>在 控制器.m 文件中,添加一個UISwitch的屬性。
1 @interface moboViewController ()
2 @property (nonatomic, strong) UISwitch *mainSwtich;
3 @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跑一下,點一點 開關,觀察控制台就可以看得到控制台的打印結果了!