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

一 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 控件的更多相关文章

  1. IOS UISwitch控件的基本使用

    * UISwitch继承自UIControl,因此也能像UIButton一样监听一些事件,比如状态改变事件* UISwitch可以通过拖线监听状态改变* UISwitch可以通过addTarget:. ...

  2. IOS开发之XCode学习011:UISwitch控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIswitch控件,添加UIswitc ...

  3. 79.iOS 设备的UI规范和iOS各控件默认高度

    iOS设备的UI 规范 iPhone界面尺寸 iPhone图标尺寸 iPad的设计尺寸 iPad图标尺寸 iPhone设备尺寸分辨率比例 iPhone各设备 launch image iOS 各种控件 ...

  4. iOS UIView控件的常用属性和方法的总结

    一 UIVIew 常见属性1.frame 位置和尺寸(以父控件的左上角为原点(0,0))2.center 中点 (以父控件的左上角为原点(0,0))3.bounds 位置和尺寸(以自己的左上角为原点 ...

  5. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  6. 初识IOS,Label控件的应用。

    初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...

  7. IOS—UITextFiled控件详解

    IOS—UITextFiled控件详解 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGR ...

  8. UISwitch控件的使用

    UISwitch控件的作用是提供一个开关给用户,用户可以选择打开或者关闭. UISwitch的基本属性包括: 1.onTintColor:打开状态下的背景颜色 2.thumbTintColor:滑块的 ...

  9. [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)

    A.概述      在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能      1.按钮点击后,显示为“已下载”,并且不 ...

随机推荐

  1. git 设置不用每次都输入 账号密码

    执行命令 git config --global credential.helper store 然后,下次再输入一次 账号密码 就可以了.

  2. [ASP.NET Core 3框架揭秘] 文件系统[1]:抽象的“文件系统”

    ASP.NET Core应用 具有很多读取文件的场景,比如配置文件.静态Web资源文件(比如CSS.JavaScript和图片文件等)以及MVC应用的View文件,甚至是直接编译到程序集中的内嵌资源文 ...

  3. PHP 面试踩过的坑

    1.get,post 的区别 **显示有区别 ** get方法是将字符串拼接在地址栏后面可以看见 而post方法看不见 **传递的大小有区别 ** 具体大小和浏览器有关系,ie浏览器是2k其他浏览器的 ...

  4. nyoj 28-大数阶乘 (大数模板)

    28-大数阶乘 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:19 submit:39 题目描述: 我们都知道如何计算一个数的阶乘,可是,如果这个数 ...

  5. python:类5——Python 的类的下划线命名有什么不同?

    首先是单下划线开头,这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入.不过值得注 ...

  6. python:爬虫2——隐藏自己

    一.添加浏览器 方法一: head['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, li ...

  7. ZeroC ICE的远程调用框架 ASM与defaultServant,ServantLocator

    ASM与defaultServant,ServantLocator都是与调用调度(Dispatch)相关的. ASM是ServantManager中的一张二维表_servantMapMap,默认Ser ...

  8. 分析facebook的AsyncDisplayKit框架,async-display使用async-transaction

    上一篇<分析facebook的AsyncDisplayKit框架中的Transaction的工作原理>介绍了fb的asdk的异步事务ASAsyncTransaction,本篇介绍其在asd ...

  9. JVM 问题排查和性能优化常用的 JDK 工具

    JDK 提供了一系列用于监控.诊断 Java 进程的工具,它们在 JDK 安装目录的 bin 目录下,有 jps.jcmd.jstack.jinfo.jmap 等.其中jmc.jconsole.jvi ...

  10. pycharm的安装流程

    以windows版本举例: 1.首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download/#section=windows,下载P ...