IOS UISwitch 控制項

來源:互聯網
上載者:User

標籤:

轉自:http://my.oschina.net/wolx/blog/396680

  • 一 UISwitch 簡介
  • 二 UISwitch 建立
  • 三設定選中狀態
  • 四 添加監聽
  • 五 測試代碼
  • 5.1 代碼
  • 5.2 執行結果
一 UISwitch 簡介

UISwitch 的作用是給使用者提供開關,在系統的設定介面很常見,控制項也很簡單。

 

二 UISwitch 建立
//建立UISwitch *switch1 = [[UISwitch alloc]init];CGSize viewSize = self.view.bounds.size;switch1.frame = CGRectMake(viewSize.height*0.2, 150, 0, 0);        //使用 initWithFrame 方法初始化開關控制項。CGRect rect = CGRectMake(viewSize.height*0.2, 250, 0, 0);UISwitch *switch2 = [[UISwitch alloc]initWithFrame:rect];

 

三設定選中狀態
@property(nonatomic,getter=isOn) BOOL on;

on 屬性用於控制開關狀態,如果設定為YES 則表示開啟,如果為NO 則表示關閉,可以通過isOn 方來判斷

//1 設定開關狀態//1.1 setOn 方法[switch1 setOn:YES];    //1.2 setOn:animated:方法。Animated 參數是布爾類型,若值為 YES 開關改變狀態時會顯 示動畫[switch2 setOn:YES animated:YES]//2 判斷狀態if ([switch1 isOn]){    NSLog(@"The switch is on.");} else {    NSLog(@"The switch is off.");}

 

 

四 添加監聽

如果要在開關控制項被開啟或關閉時得到通知資訊,可用利用 UISwitch 的addTarget:action:forControlEvents:方法加上開關的 target。

// 1. 添加監聽[switch1 addTarget:self action:@selector(switchIsChanged:) forControlEvents:UIControlEventValueChanged];// 2.事件發生後執行的方法/** *  switchIsChanged 方法,用於監聽UISwitch控制項的值改變 * *  @param swith swith 控制項 */-(void)switchIsChanged:(UISwitch *)swith{    if ([swith isOn]){        NSLog(@"The switch is on.");    } else {        NSLog(@"The switch is off.");    }    }

 

五 測試代碼5.1 代碼
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    //1.建立    UISwitch *switch1 = [[UISwitch alloc]init];    CGSize viewSize = self.view.bounds.size;    switch1.frame = CGRectMake(viewSize.height*0.2, 150, 0, 0);            //1.1使用 initWithFrame 方法初始化開關控制項。        CGRect rect = CGRectMake(viewSize.height*0.2, 250, 0, 0);    UISwitch *switch2 = [[UISwitch alloc]initWithFrame:rect];                //2 設定預設選中    //@property(nonatomic,getter=isOn) BOOL on;    [switch1 setOn:YES];        //2.1 setOn:animated:方法。Animated 參數是布爾類型,若值為 YES 開關改變狀態時會顯 示動畫    [switch2 setOn:YES animated:YES];            //3.判斷是否選中    if ([switch1 isOn]){        NSLog(@"The switch is on.");    } else {        NSLog(@"The switch is off.");    }            //4若希望在開關控制項被開啟或關閉時得到通知資訊,就必須在你的類中,利用 UISwitch 的addTarget:action:forControlEvents:方法加上開關的 target。如下代碼:    [switch1 addTarget:self action:@selector(switchIsChanged:) forControlEvents:UIControlEventValueChanged];        //添加到UIView    [self.view addSubview:switch1];    [self.view addSubview:switch2];    }/** *  switchIsChanged 方法,用於監聽UISwitch控制項的值改變 * *  @param swith swith 控制項 */-(void)switchIsChanged:(UISwitch *)swith{    if ([swith isOn]){        NSLog(@"The switch is on.");    } else {        NSLog(@"The switch is off.");    }    }- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end

 

5.2 執行結果
2015-04-07 00:00:59.435 2UISwitch[1220:29996] The switch is on.2015-04-07 00:01:06.134 2UISwitch[1220:29996] The switch is off.2015-04-07 00:01:08.424 2UISwitch[1220:29996] The switch is on.2015-04-07 00:11:57.685 2UISwitch[1220:29996] The switch is off.2015-04-07 00:12:03.681 2UISwitch[1220:29996] The switch is on.2015-04-07 00:12:04.219 2UISwitch[1220:29996] The switch is off.2015-04-07 00:12:04.965 2UISwitch[1220:29996] The switch is on.

  

IOS UISwitch 控制項

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.