1. //使用tableview来进行布局checkBox.便于全选,全不选
    //radiobutton 适合用RadioButton
  2.  
  3. #import <UIKit/UIKit.h>
  4.  
  5. @interface CheckView : UIView<UITableViewDataSource,UITableViewDelegate>
  6. - (id)initWithFrame:(CGRect)frame Data:(NSArray *)data;
  7. -(void)CkNotAllSelect;
  8. -(void)CkAllSelect;
  9. @end
  10.  
  11. #import "CheckView.h"
  12. #import "CommonButton.h"
  13. #define Kcount 3
  14.  
  15. @interface CheckView (){
  16. UITableView *_tableview;
  17. }
  18.  
  19. @property(nonatomic,retain)NSArray *MyData;
  20. @property(nonatomic,retain)NSMutableArray *chooseArrary;
  21. @end
  22.  
  23. @implementation CheckView
  24.  
  25. - (id)initWithFrame:(CGRect)frame Data:(NSArray *)data
  26. {
  27. self = [super initWithFrame:frame];
  28. if (self) {
  29. self.MyData=data;
  30. _tableview=[UITableView TableViewWithFrame:self.bounds style:UITableViewStylePlain backgroundColor:[UIColor clearColor] delegate:self separatorStyle:UITableViewCellSeparatorStyleSingleLine];
  31. _tableview.rowHeight=;
  32. [self addSubview:_tableview];
  33. self.chooseArrary =[NSMutableArray arrayWithCapacity:];
  34. for (int i=; i<data.count; i++) {
  35. [self.chooseArrary addObject:[NSNumber numberWithBool:NO]];
  36. }
  37.  
  38. }
  39. return self;
  40. }
  41.  
  42. -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
  43. return ;
  44.  
  45. }
  46.  
  47. -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  48. return self.MyData.count%Kcount==?self.MyData.count/Kcount:self.MyData.count/Kcount+;
  49. }
  50.  
  51. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  52. static NSString *cellIndentify=@"CheckView";
  53. UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIndentify];
  54. if (cell==nil) {
  55. cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIndentify] autorelease];
  56. }
  57. int row=indexPath.row*Kcount;
  58. int width=tableView.bounds.size.width/Kcount;
  59. CGRect leftRect,rect=CGRectMake(, , tableView.bounds.size.width, tableView.rowHeight);
  60. for(int i=row;i<row+Kcount;i++){
  61. if(i>=self.MyData.count) break;
  62. else{
  63. CGRectDivide(rect, &leftRect, &rect, width, CGRectMinXEdge);
  64. CommonButton *btn=[[CommonButton alloc] initWithFrame:leftRect];
  65. [btn setTitle:self.MyData[i] forState:UIControlStateNormal];
  66. BOOL flag=[[self.chooseArrary objectAtIndex:i] boolValue];
  67. if (flag) {
  68. [btn setImage:[UIImage imageNamed:@"radio_selected"] forState:UIControlStateNormal];
  69.  
  70. }
  71. else{
  72. [btn setImage:[UIImage imageNamed:@"radio_normal"] forState:UIControlStateNormal];
  73. }
  74.  
  75. [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
  76. btn.tag=i;
  77. [cell addSubview:btn];
  78. }
  79. }
  80.  
  81. return cell;
  82. }
  83.  
  84. -(void)click:(CommonButton *)btn{
  85. NSLog(@"-->%zi",btn.tag);
  86. int tag=btn.tag;
  87. BOOL flag=[[self.chooseArrary objectAtIndex:tag] boolValue];
  88. if (flag) {
  89. [self.chooseArrary replaceObjectAtIndex:tag withObject:[NSNumber numberWithBool:!flag]];
  90. [btn setImage:[UIImage imageNamed:@"radio_normal"] forState:UIControlStateNormal];
  91.  
  92. }
  93. else{
  94. [self.chooseArrary replaceObjectAtIndex:tag withObject:[NSNumber numberWithBool:!flag]];
  95. [btn setImage:[UIImage imageNamed:@"radio_selected"] forState:UIControlStateNormal];
  96. }
  97. }
  98.  
  99. -(void)CkAllSelect{
  100. for (int i=; i<self.MyData.count;i++) {
  101. [self.chooseArrary replaceObjectAtIndex:i withObject:[NSNumber numberWithBool:YES]];
  102.  
  103. }
  104. [_tableview reloadData];
  105.  
  106. }
  107.  
  108. -(void)CkNotAllSelect{
  109. for (int i=; i<self.MyData.count;i++) {
  110. [self.chooseArrary replaceObjectAtIndex:i withObject:[NSNumber numberWithBool:NO]];
  111.  
  112. }
  113. [_tableview reloadData];
  114. }
  115.  
  116. - (void)dealloc
  117. {
  118. [_chooseArrary release];
  119. [_MyData release];
  120. [super dealloc];
  121. }
  122.  
  123. @end
  1. - (void)viewDidLoad
  2. {
  3. [super viewDidLoad];
  4. // Do any additional setup after loading the view, typically from a nib.
  5. // [self RadioButtonSelect];
  6. // UIButton *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
  7. // btn.frame=CGRectMake(0, 100, 50,50);
  8. // [self.view addSubview:btn];
  9. // [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
  10. NSArray *arr=@[@"标题1",@"标题2",@"标题3",@"标题4"];
  11. CheckView *checkView=[[CheckView alloc] initWithFrame:CGRectMake(, , , ) Data:arr];
  12. _CK=checkView;
  13. [self.view addSubview:checkView];
  14. [checkView release];
  15.  
  16. }

Ios中checkBox的更多相关文章

  1. iOS中textbox文本框清除圆角

    在iOS.Mac safari中,所有的textbox, select, checkbox都会被强制美化为圆角.但在特殊情况下需要清除圆角时发现iOS中使用以下传统的css无效: border-rad ...

  2. 解决ios中input兼容性问题

    1.解决input输入框在iOS中有阴影问题 input{ -webkit-appearance: none; } 2.checkbox.raido在ios中阴影问题 单选:              ...

  3. iOS中支付宝集成

    iOS中支付宝集成 如今各种的App中都使用了三方支付的功能,现在将我在使用支付宝支付集成过程的心得分享一下,希望对大家都能有所帮助 要集成一个支付宝支付过程的环境,大致需要: 1>公司:先与支 ...

  4. iOS中数据库应用基础

    iOS 数据库入门 一.数据库简介 1.什么是数据库? 数据库(Database) 是按照数据结构来组织,存储和管理数据的仓库 数据库可以分为2大种类 关系型数据库(主流) PC端 Oracle My ...

  5. 正则表达式在iOS中的运用

    1.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...

  6. iOS 中的 HotFix 方案总结详解

    相信HotFix大家应该都很熟悉了,今天主要对于最近调研的一些方案做一些总结.iOS中的HotFix方案大致可以分为四种: WaxPatch(Alibaba) Dynamic Framework(Ap ...

  7. iOS中使用正则

    一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...

  8. IOS中div contenteditable=true无法输入

    在IOS中<div contenteditable="true"></div>中点击时可以弹出键盘但是无法输入.加一个样式-webkit-user-sele ...

  9. 谈谈iOS中的屏幕方向

    众所周知,iOS中提供了[UIDevice currentDevice].orientation与[UIApplication sharedApplication].statusBarOrientat ...

随机推荐

  1. Go语言之进阶篇连接mysql

    一.Go连接mysql 1.mysql驱动 地址:https://github.com/Go-SQL-Driver/MySQL 说明: sql.Open()函数用来打开一个注册过的数据库驱动,Go-M ...

  2. MultipleRegularExpressionAttribute MVC中扩展自定义验证规则

    好久都没有写博客,最近工作中没有什么可写的,公司的项目是以业务为重,技术含量实在不咋的.这次sprint中有一个要求就是password必须一些规则,比如给你一些正则表达式必须满足几个,直接看效果吧 ...

  3. JavaScript学习笔记——错误处理

    说明:参见<JavaScript高级程序设计>第14章. 一.             错误分类 1. 语法错误 也称为解析错误,发生在传统编程语言的编译时,在JavaScript中发生在 ...

  4. ztree默认自动打开第一级

    var treeObj = $.fn.zTree.getZTreeObj("tree"); var nodes = treeObj.getNodes(); if (nodes.le ...

  5. Ubuntu SVN安装&使用&命令

    SVN 安装 apt-get install subversion checkout svn checkout svn://192.168.1.110/app 按提示输入相应的用户名和密码. 往版本库 ...

  6. Everything常见问题及搜索技巧,附Demo

    1 Everything 1.1 "Everything"是什么? "Everything"是一个运行于Windows系统,基于文件.文件夹名称的快速搜索引擎. ...

  7. .NET 服务器定位模式(Service Locator Pattern)——Common Service Locator

    本文内容 场景 目标 解决方案 实现细节 思考 相关模式 更多信息 参考资料 Common Service Locator 代码很简单,它一般不会单独使用,而是作为一个单件模式,与像 .net Uni ...

  8. MyBatis - (二) 一对一映射和一对多映射

    1. 一对一映射 例子表: 学生表 地址表 POJO类 public class Address { private Integer addrId; private String street; pr ...

  9. 用一条sql取得第10到第20条的记录-Mssql数据库

    因为id可能不是连续的,所以不能用取得10<id<20的记录的方法. 有三种方法可以实现: 一.搜索前20条记录,指定不包括前10条 语句: select top 20 * from tb ...

  10. bootstrap——强大的网页设计元素模板

    本文介绍一个网页设计工具——bootstrap,它包含了很多华丽的按钮及排版,我们可以在网页设计中直接使用它,尤其是加入我们只是想简单的使用一下的话,将会是一个不错的选择,下面是几张examples, ...