【iOS開發(fā)-12】UISwitch開關(guān)控件屬性介紹以及獲取開關(guān)狀態(tài)并做出響應(yīng)
來源:程序員人生 發(fā)布時(shí)間:2014-09-30 00:58:32 閱讀次數(shù):2588次
(1)UISwitch的大小也是固定的,不隨我們frame設(shè)置的大小改變;也是裁剪成圓角的,設(shè)置背景就露馬腳發(fā)現(xiàn)背景是矩形。
(2)UISwitch的背景圖片設(shè)置無效,即我們只能設(shè)置顏色,不能用圖片當(dāng)背景,雖然實(shí)驗(yàn)了很小的圖片,也是不行。可能需要借助第三方類來實(shí)現(xiàn)。
(3)UISwitch也可以增加addTarget:方法,來獲取值變動(dòng)的操作,從而做出響應(yīng)的反應(yīng)。
(4).isOn屬性比較特殊,不能設(shè)置值,因?yàn)槭歉鏶etter方法,不是setter方法,所以只能獲取值,例如判斷是否開啟,一般用在if語句中。
- (void)viewDidLoad {
//實(shí)例化一個(gè)開關(guān)控件
UISwitch *swi1=[[UISwitch alloc]init];
//設(shè)置位置和大小,發(fā)現(xiàn)大小無效。即開關(guān)控件大小不受影響,還是那么
swi1.frame=CGRectMake(30, 100, 300, 80);
//設(shè)置背景,發(fā)現(xiàn)上面設(shè)置的框的大小確實(shí)無效,因?yàn)楸尘爸挥锌丶敲创螅⒉皇窃O(shè)置的那么大,而且控件是圓角
swi1.backgroundColor=[UIColor redColor];
//設(shè)置ON一邊的背景顏色,默認(rèn)是綠色
swi1.onTintColor=[UIColor yellowColor];
//設(shè)置OFF一邊的背景顏色,默認(rèn)是灰色,發(fā)現(xiàn)OFF背景顏色其實(shí)也是控件”邊框“顏色
swi1.tintColor=[UIColor purpleColor];
//設(shè)置滑塊顏色
swi1.thumbTintColor=[UIColor greenColor];
swi1.onImage=[UIImage imageNamed:@"1.png"];//無效
swi1.offImage=[UIImage imageNamed:@"logo.png"];//無效
//設(shè)置成開啟病設(shè)置動(dòng)畫形式出現(xiàn),當(dāng)然也可以直接用[swi1 setOn:YES];
[swi1 setOn:YES animated:YES];
//開關(guān)控件默認(rèn)是關(guān)閉的,setOn可以默認(rèn)成打開,所以其實(shí)它在顯示的時(shí)候有一個(gè)打開的動(dòng)作,但這個(gè)動(dòng)作不發(fā)送消息,即捕捉不到
//如我們做個(gè)試驗(yàn),弄個(gè)針對(duì)“值變動(dòng)”所引發(fā)的操作,即值發(fā)生變動(dòng),開啟輸出“On”,關(guān)閉輸出“Off”
//發(fā)現(xiàn)第一次并沒有輸出On,我們自己手動(dòng)從關(guān)閉到開啟時(shí)會(huì)有On和Off
//所以這個(gè)setOn雖然是一個(gè)開啟動(dòng)作,但我們可以認(rèn)為它相當(dāng)于是內(nèi)置了,我們看不到這個(gè)動(dòng)作,所以捕捉不到
//但這里我們練習(xí)了獲取值變動(dòng)病利用isOn來做相應(yīng)的操作
[swi1 addTarget:self action:@selector(getValue1:) forControlEvents:UIControlEventValueChanged];
//isOn是一個(gè)getter方法,所以不能夠賦值,即不能用swi.isOn=YES,只能取得當(dāng)前結(jié)果,一般用于判斷是否是開啟狀態(tài)
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");
}
}
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)