1、首先创建工程文件,CheckBox,

然后创建CheckBox类,继承自UIView,同时添加资源文件,选中、取消的图片,添加完成以后目录如下:

CheckBox类头文件代码如下:

#import <UIKit/UIKit.h>@protocol CheckBoxDelegate;@interface CheckBox : UIView@property(nonatomic,retain)NSString *text;//显示文字
@property(nonatomic,assign)BOOL checked;//是否选中@property(nonatomic,retain) id<CheckBoxDelegate> delegate;//代理-(id)initWithText:(NSString *)text frame:(CGRect)frame;//初始化@end@protocol CheckBoxDelegate<NSObject>-(void)onChangeDelegate:(CheckBox *)checkbox isCheck:(BOOL)isCheck;@end

CheckBox实现代码如下:

#import "CheckBox.h"
@interface CheckBox()@property(nonatomic,retain)UIImage *onImage;
@property(nonatomic,retain)UIImage *offImage;@end@implementation CheckBox-(void)dealloc{[_text release];[_delegate release];[_onImage release];[_offImage release];[super dealloc];
}
- (id)initWithFrame:(CGRect)frame
{self = [super initWithFrame:frame];if (self) {// Initialization code}return self;
}
-(id)initWithText:(NSString *)text frame:(CGRect)frame{self=[super initWithFrame:frame];if(self){_text=text;self.backgroundColor=[UIColor clearColor];self.onImage=[UIImage imageNamed:@"chk_on.png"];//选中图片self.offImage=[UIImage imageNamed:@"chk_off.png"];//取消图片}return self;
}
-(void)setChecked:(BOOL)checked{_checked=checked;//注册代理事件,通知状态改变if([self.delegate respondsToSelector:@selector(onChangeDelegate:isCheck:)]){[self.delegate onChangeDelegate:self isCheck:_checked];}[self setNeedsDisplay];
}
-(void)drawRect:(CGRect)rect{//将text,image绘制到UIView上面UIImage *image=self.checked?self.onImage:self.offImage;[image drawAtPoint:CGPointMake(5, 8)];UIFont *font=[UIFont systemFontOfSize:16.0f];[self.text drawAtPoint:CGPointMake(25, 8) withFont:font];
}
//点击事件
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{self.checked=!self.checked;
}@end

调用代码如下:首先引入CheckBox,

#import "ViewController.h"
#import "CheckBox.h"@interface ViewController ()
<
CheckBoxDelegate//协议
>@end@implementation ViewController- (void)viewDidLoad
{[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.CheckBox *cb=[[CheckBox alloc] initWithText:@"乒乓球" frame:CGRectMake(10, 10, 80, 30)];cb.delegate=self;//设置委托[self.view addSubview:cb];[cb release];}
-(void)onChangeDelegate:(CheckBox *)checkbox isCheck:(BOOL)isCheck{//NSLog(@"text:%@,State:%@",checkbox.text,isCheck?@"YES":@"NO");
}- (void)didReceiveMemoryWarning
{[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end

IOS 自定义复选框相关推荐

  1. django获取html复选框,扩展Django Admin tabular.html自定义复选框操作

    我有两个表被告和被告_Potential class Defendant(models.Model): fullname = models.CharField(max_length = 100, nu ...

  2. html制作复选框,html自定义复选框

    自定义复选框的素材: icon-check-circle.png icon-checked.png checkbox.html(为了方便起见,这里使用到了jQuery) 自定义复选框checkbox ...

  3. 自定义复选框checkbox样式

    复选框作为网页中比较常见的一个组件,有的时候我们需要对它进行美化,但是我们无法直接为其定义样式,所以我们需要一些其它的办法. 表单元素中有label 元素和 for属性,当我们点击label 标签时, ...

  4. element-ui 使用自定义复选框

    为什么不使用自带复选框? 自带复选框无法确定数据来源于回填还是用户手动选择,因为回填表格复选框时只能使用toggleRowSelection方法来遍历回填,而且会触发selection-change事 ...

  5. el-checkbox 自定义 复选框【多选框】

    1. 自定义 多选框 el-checkbox; 预览: 注意: 假如有全局字体引入会影响显示效果: 去除el-checkbox__inner附加字体css font-family: not speci ...

  6. 自定义复选框,复选框样式修改,重写复选框

    查了好多资料复选框写的磨磨叽叽的一大堆废话! 我来教大家写一个原生jq的复选框样式,简单实用,又不会耽误checkbox的调用. html: <label class="checkli ...

  7. 微信小程序自定义复选框

    微信官方给的复选框太丑,想要样式多样需要我们自己定义 先来张效果图 wxml循环生成选框,从js里取数据,根据checked的值,改变标签的样式类 <view class="two { ...

  8. Android CheckBox 复选框(自定义复选框)

    一.正常使用 代码 <!-- CheckBox --> <CheckBoxandroid:id="@+id/man"android:layout_width=&q ...

  9. layui数据表格自定义复选框表头_layui中table表头样式修改方法

    如下所示: layui.use('table', function () { var table = layui.table; table.render({ elem: '#desTable' , u ...

最新文章

  1. python基础知识整理 第二节:容器(list tuple dict)
  2. appium简明教程(7)——Desired Capabilities详解
  3. 【Unity】Protobuf的使用与常见问题
  4. 搭建Maven私有仓库
  5. RHEL5 RHEL6 差异 1
  6. 使用element ui 日期选择器获取值后的格式问题
  7. 使用Azure静态Web应用部署Blazor Webassembly应用
  8. Kibana未授权访问漏洞记录(CVE-2019-7609,Kibana的RCE,原型链污染,端口:5601)
  9. John's trip(POJ1041+欧拉回路+打印路径)
  10. 归并排序与快速排序比较
  11. Splunk企业级运维智能大数据分析平台新手入门视频课程上线
  12. 基于SOCKS的IPv4向IPv6过渡技术
  13. 121、华为交换机配置手册
  14. QT应用编程: 开发TCP网络调试助手
  15. matlab画三维图如何更改颜色,MATLAB画三维图像
  16. 接收信号强度值dbm分析
  17. 转载:Ceph论文译文
  18. 如何才能通过一线互联网公司面试?下载量瞬秒百万
  19. 使用java搭建简单的ligerui环境
  20. Html5(H5)是什么?

热门文章

  1. 【报告分享】2021年中国美食消费用户行为洞察-易观智库(附下载)
  2. 【设计模式】常用9种设计模式详解
  3. 使用FSL对DTI进行概率纤维追踪(GPU版本)
  4. 华三通用性能服务器,高水平通过国家级实验室多项标准化评测 新华三服务器树立企业计算新标杆...
  5. 【板栗糖GIS】arcmap—如何批量不显示黑边,一劳永逸
  6. app启动页面html,50个国内中文APP启动页设计
  7. rp虚拟服务器,怀旧服之见闻——RP服务器的戏精玩法
  8. 哥伦比亚大学牙科学院使用RFID系统,更好管理牙科器械
  9. 奶爸日记26 - 生日祝福
  10. 中图法检索计算机科学方面,千兆位以太网中可以使用超5类UTP双绞线。【