【iOS開發-12】UISwitch開關控件屬性介紹以及獲取開關狀態并做出響應
來源:程序員人生 發布時間:2014-09-30 00:58:32 閱讀次數:2585次
(1)UISwitch的大小也是固定的,不隨我們frame設置的大小改變;也是裁剪成圓角的,設置背景就露馬腳發現背景是矩形。
(2)UISwitch的背景圖片設置無效,即我們只能設置顏色,不能用圖片當背景,雖然實驗了很小的圖片,也是不行。可能需要借助第三方類來實現。
(3)UISwitch也可以增加addTarget:方法,來獲取值變動的操作,從而做出響應的反應。
(4).isOn屬性比較特殊,不能設置值,因為是哥getter方法,不是setter方法,所以只能獲取值,例如判斷是否開啟,一般用在if語句中。
- (void)viewDidLoad {
//實例化一個開關控件
UISwitch *swi1=[[UISwitch alloc]init];
//設置位置和大小,發現大小無效。即開關控件大小不受影響,還是那么
swi1.frame=CGRectMake(30, 100, 300, 80);
//設置背景,發現上面設置的框的大小確實無效,因為背景只有控件那么大,并不是設置的那么大,而且控件是圓角
swi1.backgroundColor=[UIColor redColor];
//設置ON一邊的背景顏色,默認是綠色
swi1.onTintColor=[UIColor yellowColor];
//設置OFF一邊的背景顏色,默認是灰色,發現OFF背景顏色其實也是控件”邊框“顏色
swi1.tintColor=[UIColor purpleColor];
//設置滑塊顏色
swi1.thumbTintColor=[UIColor greenColor];
swi1.onImage=[UIImage imageNamed:@"1.png"];//無效
swi1.offImage=[UIImage imageNamed:@"logo.png"];//無效
//設置成開啟病設置動畫形式出現,當然也可以直接用[swi1 setOn:YES];
[swi1 setOn:YES animated:YES];
//開關控件默認是關閉的,setOn可以默認成打開,所以其實它在顯示的時候有一個打開的動作,但這個動作不發送消息,即捕捉不到
//如我們做個試驗,弄個針對“值變動”所引發的操作,即值發生變動,開啟輸出“On”,關閉輸出“Off”
//發現第一次并沒有輸出On,我們自己手動從關閉到開啟時會有On和Off
//所以這個setOn雖然是一個開啟動作,但我們可以認為它相當于是內置了,我們看不到這個動作,所以捕捉不到
//但這里我們練習了獲取值變動病利用isOn來做相應的操作
[swi1 addTarget:self action:@selector(getValue1:) forControlEvents:UIControlEventValueChanged];
//isOn是一個getter方法,所以不能夠賦值,即不能用swi.isOn=YES,只能取得當前結果,一般用于判斷是否是開啟狀態
if (swi1.isOn) {
NSLog(@"It is On");
}
[self.view addSubview:swi1];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)getValue1:(id)sender{
UISwitch *swi2=(UISwitch *)sender;
if (swi2.isOn) {
NSLog(@"On");
}else{
NSLog(@"Off");
}
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈