歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> UISwitch 開關控件—iOS開發

UISwitch 開關控件—iOS開發

日期:2017/3/1 10:28:09   编辑:Linux編程

正如分段控件代替了單選按鈕,開關也代替了點選框。開關是到目前為止用起來最簡單的控件,不過仍然可以作一定程度的定制化。

一、創建

  1. UISwitch* mySwitch = [[ UISwitch alloc]initWithFrame:CGRectMake(200.0,10.0,0.0,0.0)];
是不是很奇怪,大小竟然是0.0×0.0,沒錯,系統會自動幫你決定最佳的尺寸,你自己寫的尺寸會被忽略掉,你只要定義好相對父視圖的位置就好了。關於純代碼創建控件請參看我的另一篇博文:《有關View的幾個基礎知識點》 http://www.linuxidc.com/Linux/2012-02/55370p2.htm

二、顯示控件

  1. [ parrentView addSubview:mySwitch];//添加到父視圖
  1. self.navigationItem.titleView = mySwitch;//添加到導航欄
二、開關狀態

開關狀態可以通過它的on屬性讀取,這個屬性是一個BOOL值,表示開關是否被打開:

  1. BOOL switchStatus = mySwitch.on;
你可以在你的代碼中用setOn方法來打開或關閉開關:
  1. [ mySwitch setOn:YES animated:YES];
三、通知

想要在開關狀態切換時收到通知,可以用UIControl類的addTarget方法為UIControlEventValueChanged事件添加一個動作。

  1. [ mySwitch addTarget: self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
這樣,只要開關一被切換目標類(上例中目標類就是當前控制器self)就會調用switchValueChanged方法,是不是很棒呢?
  1. - (void) switchValueChanged:(id)sender{
  2. UISwitch* control = (UISwitch*)sender;
  3. if(control == mySwitch){
  4. BOOL on = control.on;
  5. //添加自己要處理的事情代碼
  6. }
  7. }
了解了開關之後是不是覺得很棒呢?是不是發現有好多地方可以用到它?覺得不錯就馬上寫點代碼體驗一下吧!
Copyright © Linux教程網 All Rights Reserved