iOS 单选框RadioButton实现
来源:互联网 发布:it职业高中 编辑:程序博客网 时间:2024/05/20 12:21
我们知道iOS是没有类似RadioButton的单选框,So 我们来看下github 上start最多的项目RadioButton-ios的实现方式。
地址:GitHub - onegray/RadioButton-ios: Lightweight RadioButton class for iOS
先看效果图:
这个项目只有两个文件:RadioButton.h和RadioButton.m,先看下RadioButton.h的内容:
其实也没什么,但是有个属性就比较的特殊:groupButtons,他用了IBOutletCollection的实现方式。这个关键字,可以将界面上一组相同的控件连接到同一个数组中。通常情况下,我们使用一个IBOutletCollection属性时,属性必须是strong的,且类型是NSArray。具体想了解更多IBOutletCollection,可以参考:IBOutletCollection的使用方法 - CocoaChina_让移动开发更简单。这里用IBOutletCollection主要还是为了方便能够在IB中方便操作,其实用NSArray实现也是一样的。
如果用IB方式进行组合的话,这个方法不需要你去主动调用。其实这个方法做的工作就是遍历buttons,然后通过NSValue的valueWithNonretainedObject方法将buttons设置到sharedLinks数组里面。为什么取sharedLink这个名字,主要是因为这些buttons引用的是同一个sharedLinks。之后其他的方法就是围绕着sharedLinks去操作,并通过NSValue的nonretainedObjectValue获取之前封装的值。注意:这里为什么要多此一举的用NSValue的两个方法,其实这里存在一个循环引用的问题,而NSValue的两个方法就是为了弱化这层关系,大家可以好好琢磨。
选中之后的操作会执行这几个方法,主要是设置当前RadioButton选中状态,然后循环便利其他RadioButton状态为未选中状态。如果是用IB进行操作的话,选中和未选中的状态的背景可以通过如下图方法设置:
鸣谢:http://www.jianshu.com/p/4971424c693b
- iOS 单选框RadioButton实现
- RadioButton的实现
- radiobutton实现多行单选
- Radiobutton实现单选。
- RadioButton选中效果实现
- RadioButton listView实现
- RadioButton实现Fragment切换
- Android 自定义RadioButton实现
- Android radiobutton 利用 SpannableString 实现图文混排 实现 iOS segmentcontrol效果
- RecycleView实现单选框RadioButton,复选框CheckBox,不定项选择
- iOS RadioButton 单选按钮
- ImageView实现RadioButton切换图标
- RadioGroup中的RadioButton实现换行
- 自定义RadioButton样式,实现菜单
- 自定义RadioGroup实现radioButton多行多列
- RadioGroup和RadioButton的实现
- 底部RadioButton实现Fragment切换
- Listview+RadioButton实现单选
- 无密码登陆windows10
- ubuntu安装完整版的vim
- Material Design ui设计风格详解
- 6261:汉诺塔问题
- apk 反编译
- iOS 单选框RadioButton实现
- Sprint Boot 打War包并启动
- Hadoop+zookeepker安装与配置:
- JSch
- IOS开发入门----OC属性学习(2017/8/10)
- jdbc将图片保存到数据库
- 绿色线程
- TCP滑动窗口控制流量的原理
- 在List的add方法添加对象时都是最后的一条记录的重复