iOS开关-UISwitch
2016-02-29 16:55
447 查看
正如分段控件代替了单选按钮,开关也代替了点选框。开关是到目前为止用起来最简单的控件,不过仍然可以作一定程度的定制化。
一、创建
[java] view
plain copy
print?
UISwitch* mySwitch = [[ UISwitch alloc]initWithFrame:CGRectMake(200.0,10.0,0.0,0.0)];
是不是很奇怪,大小竟然是0.0×0.0,没错,系统会自动帮你决定最佳的尺寸,你自己写的尺寸会被忽略掉,你只要定义好相对父视图的位置就好了。关于纯代码创建控件请参看我的另一篇博文:《有关View的几个基础知识点》
二、显示控件
[java] view
plain copy
print?
[ parrentView addSubview:mySwitch];//添加到父视图
或
[java] view
plain copy
print?
self.navigationItem.titleView = mySwitch;//添加到导航栏
二、开关状态
开关状态可以通过它的on属性读取,这个属性是一个BOOL值,表示开关是否被打开:
[java] view
plain copy
print?
BOOL switchStatus = mySwitch.on;
你可以在你的代码中用setOn方法来打开或关闭开关:
[java] view
plain copy
print?
[ mySwitch setOn:YES animated:YES];
三、通知
想要在开关状态切换时收到通知,可以用UIControl类的addTarget方法为UIControlEventValueChanged事件添加一个动作。
[java] view
plain copy
print?
[ mySwitch addTarget: self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
这样,只要开关一被切换目标类(上例中目标类就是当前控制器self)就会调用switchValueChanged方法,是不是很棒呢?
[java] view
plain copy
print?
- (void) switchValueChanged:(id)sender{
UISwitch* control = (UISwitch*)sender;
if(control == mySwitch){
BOOL on = control.on;
//添加自己要处理的事情代码
}
}
一、创建
[java] view
plain copy
print?
UISwitch* mySwitch = [[ UISwitch alloc]initWithFrame:CGRectMake(200.0,10.0,0.0,0.0)];
是不是很奇怪,大小竟然是0.0×0.0,没错,系统会自动帮你决定最佳的尺寸,你自己写的尺寸会被忽略掉,你只要定义好相对父视图的位置就好了。关于纯代码创建控件请参看我的另一篇博文:《有关View的几个基础知识点》
二、显示控件
[java] view
plain copy
print?
[ parrentView addSubview:mySwitch];//添加到父视图
或
[java] view
plain copy
print?
self.navigationItem.titleView = mySwitch;//添加到导航栏
二、开关状态
开关状态可以通过它的on属性读取,这个属性是一个BOOL值,表示开关是否被打开:
[java] view
plain copy
print?
BOOL switchStatus = mySwitch.on;
你可以在你的代码中用setOn方法来打开或关闭开关:
[java] view
plain copy
print?
[ mySwitch setOn:YES animated:YES];
三、通知
想要在开关状态切换时收到通知,可以用UIControl类的addTarget方法为UIControlEventValueChanged事件添加一个动作。
[java] view
plain copy
print?
[ mySwitch addTarget: self action:@selector(switchValueChanged:) forControlEvents:UIControlEventValueChanged];
这样,只要开关一被切换目标类(上例中目标类就是当前控制器self)就会调用switchValueChanged方法,是不是很棒呢?
[java] view
plain copy
print?
- (void) switchValueChanged:(id)sender{
UISwitch* control = (UISwitch*)sender;
if(control == mySwitch){
BOOL on = control.on;
//添加自己要处理的事情代码
}
}
相关文章推荐
- 18.写在二月份的尾巴,UIView animation 的奇怪需求
- 使用UIBezierPath和CAShapeLayer画各种图形
- iOS 给UILabel文字加下划线
- 探秘Java中String、StringBuilder以及StringBuffer
- IOS_可移动的UIImageView(随手指移动)
- Salesforce Process Builder - 进程生成器
- soj 2804 Longest Ordered Subsequence (II) LIS nlogn
- 解决 gradle 始终在Building的问题
- 重新生成索引存储过程 sp_rebuild_index
- duilib : 滑动显示的窗口实现以及 悬浮窗 (转载)
- Arduino - 利用电阻进行分压,测量12V电压
- 管理系统UI: System Bar 详解
- UINavigationController侧滑滑动返回 卡死问题
- 从客户端中检测到有潜在危险的Request.Form值的解决办法
- iOS7 UIKit动力学-碰撞特性UICollisionBehavior 下
- 关于利用drawable 来提升UI Perfermance(启动页时,先显示空白页 )
- libsvm之SVM_GUI使用
- UIKit框架(15)PCH头文件
- Binary XML file line #3: <item> tag requires a 'drawable' attribute or child tag defining a drawable
- 设置网格UICollectionView的单元格间距