iOS7_关于UISwitch_02_如何自定义UISwitch_如何设定UISwitch的默认开关状态_如何监听 Switch开关状态

前言

上一篇博文,我们介绍了一下如何实现 UISwitch ,我们这次介绍下如何自定义 UISwitch。

原文连接:http://www.cnblogs.com/LeoYoung/p/qq907596253.html

正文

1、我们先在界面上实现一个 UISwitch。

a>在 控制器.m 文件中,添加一个UISwitch的属性。

1 @interface moboViewController ()

2 @property (nonatomic, strong) UISwitch *mainSwtich;

3 @end

b>在 - (void)viewDidAppear 方法中实例化一个 UISwitch 并添加到界面上。

 1 - (void)viewDidAppear:(BOOL)animated
 2 {
 3     [super viewDidLoad];
 4
 5     self.mainSwtich = [[UISwitch alloc]initWithFrame:CGRectMake(100, 100, 0, 0)];//实例化,坐标为 x100,y100
 6
 7     [self.view addSubview:self.mainSwtich];   //添加到界面
 8 }

2、自定义开关颜色:

我们首先按住 cmd,进入UISwitch头文件。看到三个属性:

UIColor *onTintColor  // 开启时颜色

UIColor *tintColor    // 关闭时颜色

UIColor *thumbTintColor // 开关按钮颜色

下面我们来自定义一下,在- (void)viewDidAppear中添加如下代码:

1     self.mainSwtich.thumbTintColor = [UIColor colorWithRed:(151./255.0) green:(81./255.0) blue:(229./255.0) alpha:1];
2
3     self.mainSwtich.tintColor = [UIColor colorWithRed:(51./255.0) green:(181./255.0) blue:(229./255.0) alpha:1];
4
5     self.mainSwtich.onTintColor = [UIColor colorWithRed:(51./255.0) green:(181./255.0) blue:(229./255.0) alpha:1];

注:我们用到了UIColor 类的 colorWithRed:green:blue: 方法,这个方法的色值是浮点型,所以必须用"色值./255.0",色值最好后面带一个 . ,显得专业一点~~~

另外色值转换神马的,有一个网站支持在线转换:http://www.atool.org/colorpicker.php

3、我们来设定UISwitch的默认开关状态:

这个很简单,在 - (void)viewDidAppear方法中添加如下代码:

1 [self.mainSwtich setOn:YES animated:YES];

4、监听 UISwitch 的开关状态:

1 [self.mainSwtich addTarget:self action:@selector(switchIsChanged:) forControlEvents:UIControlEventValueChanged];

再在- (void) viewDidAppear 下面,实现一下 switchIsChanged 方法:

1 - (void)switchIsChanged:(UISwitch *)paramSender
2 {
3     if ([self.mainSwtich isOn]) {
4         NSLog(@"Switch is on");
5     }
6     else{
7         NSLog(@"Switch is off");
8     }
9 }

CMD+R跑一下,点一点 开关,观察控制台就可以看得到控制台的打印结果了!

时间: 2024-11-09 12:00:28

iOS7_关于UISwitch_02_如何自定义UISwitch_如何设定UISwitch的默认开关状态_如何监听 Switch开关状态的相关文章

在EditText中限制输入,自定义样式,监听输入的字符,自动换行

自动获取焦点 <!-- 添加:<requestFocus /> 会自动获取焦点 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:gravity="center_horizontal" android:hint="自

cocos2d-js 自定义监听 EventCustom

cf.TestScene = cc.Scene.extend({ _listener1:null }); cf.TestScene.create = function () { var res = new cf.TestScene(); if(res && res.init()) { return res; } res = null; return null; } cf.TestScene.prototype.init = function () { if(cc.Scene.prototy

Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法

时隔一个多月我又回来啦! 坚持真的是很难的一件事,其它事情稍忙,就很容易说服自己把写博客的计划给推迟了. 好在终于克服了自己的惰性,今天又开始了. 本篇继续我的Luaframework学习之路. 一.规范开发模式 此前的示例中,动态加载的panel都默认以GuiCamera为父节点,且面板的大小设置得有些随意,为方便后续开发,现做一些调整和规范. 1.设定本项目的开发分辨率为1334x750(Game视图分辨率也设置为这个大小): 2.调整相机,将原有的GuiCamera从Canvas下拖离出来

Python网络编程——设定并获取默认的套接字超时时间

Sometimes,you need to manipulate the default values of certain properties of a socket library, for example, the socket timeout. 设定并获取默认的套接字超时时间. 1.代码 1 import socket 2 3 4 def test_socket_timeout(): 5 s = socket.socket(socket.AF_INET, socket.SOCK_STR

angular指令监听ng-repeat渲染完成后执行自定义事件方法

今天工作中遇到需要用到ng-repeat遍历渲染完后执行某个操作,angular本身并没有提供监听ng-repeat渲染完成的指令,所以需要自己创建自定义指令. 在ng-repeat模板实例内部会暴露出一些特殊属性$index/$first/$middle/$last/$odd/$even,$index会随着每次遍历(从0开始)递增,当遍历到最后一个时,$last的值为true,所以可以通过判断$last的值来监听ng-repeat的执行状态, 怎么在遍历过程中拿到$last的值:自定义指令 v

Android自定义之TextView跑马灯的监听

TextView都有跑马灯的效果,如果说让你去监听跑马灯效果的执行,我觉得这个需求有点二了,但是也要实现. 思路: 1.自定义View  继承TextView   这种方法过于麻烦,只是监听一个跑马灯而已. 2.自定义SPan.简单好用,扩展TextView的功能. 关键代码如下: @Override public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, in

jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化

jQuery封装自定义事件--valuechange(动态的监听input,textarea)之前值,之后值的变化 js监听输入框值的即时变化 网上有很多关于 onpropertychange.oninput的讲解,但是他们都不是我想要的,我想要的是动态的监听input,textarea等之前值和之后改变的值,比如像KISSY中的valuechange事件一样,当我在输入框里面开始输入1的时候,那么之前值是undefined,现在的值是1,当我接着输入2时候,那么之前的值是1,现在的值是2.等,

手动设定实例变量的KVO实现监听

如果将一个对象设定成属性,这个属性是自动支持KVO的,如果这个对象是一个实例变量,那么,这个KVO是需要我们自己来实现的. 以下给出源码供君测试: Student.h 与 Student.m // // Student.h // SuperNotification // // Copyright (c) 2014年 Y.X. All rights reserved. // #import <Foundation/Foundation.h> @interface Student : NSObje

自定义对象的监听方式

问题描述: 当一个事件的触发不定期的时候,即我们不知道这个触发何时来到,但是我们却要对这个触发执行某些方法,如何实现? 可能的解决方案: 我当时就想到了,这个问题类似与Android的部件监听(我没有去看Android的源码,太懒了...).由于现在还在研读Thinking in Java这种入门书籍,突然来了想法,罗列如下,可以通过接口. 下面是我写的一个测试的例子 首先是一个类似Button的部件 package com.example.androidtest2.service; /** *