注:本文所有图片保存EverNote 印象笔记(www.yinxiang.com)当中, 如果有其帐号登录后即可查看全部图片。 如没有帐号可用e-mail 注册免费印象笔记
iOS没有Checkbox 控制,只有UISwitch 起到相同作用。但是很多时候因为界面风格原因 需要使用checkbox 风格来实现。(就是为了好看)
网上有人写一些简单控件: http://code4app.com/ios/Check-Box/51e77cea6803fa6361000000
https://github.com/mattglover/MGCheckbox
测试后发现两个问题:
- ARC下需要改写,改的地方还真不少
- 测试程序checkbox 对象都是动态创建的。在storyboard 作可视化设计时,集成时,工作量不少
后来找到一个国外介绍手工用UIButton 制作Checkbox 除一个事件处理方法需要手工编写外,其余全部在storyboard 完成,合适可视化设计
http://weheartgames.com/2009/06/simple-iphone-checkbox/
一.绘制控件
1.在StoryBoard 中拖一个UIButton控制 style设为 Custom ,这样就不会显示按钮的边线影响显示效果 UIButton 本身可以直接设定不同状态的图片 Default 相当于unchecked 状态 Selected 相当于按于checked 状态
2.设计点击响应事件 在代码中建立一个IBAction事件,
- (IBAction)checkboxButton:(id)sender; 在UIButton 的Touch Up Inside 建立与这个IBAction 的对应关系 这个代码主要负责处理UIButton 状态切换关系,这里我改进一下代码,我们用UIButton的Tag用来存储状态,这样在同一个界面多 个checkbox 处理起来就用同一套代码即可。
- (IBAction)checkboxButton:(id)sender{
UIButton * checkbox = (UIButton *)sender;
if(checkbox.tag == 0){
[checkbox setSelected:YES];
checkbox.tag = 1;
}
else {
[checkbox setSelected:NO];
checkbox.tag = 0;
}
最后给一个示例代码 http://weheartgames.com/wp-content/uploads/2009/06/checkbox.zip
如图片不正常请访问 完整版
https://app.yinxiang.com/shard/s1/sh/ff199b8b-bd58-45f6-a1f6-aaeb7c7997bb/9f5a2c4ad6dbaad59ff7b7b45c2c5825