UITableViewCell 添加 checkbox 多选 (二)

其实苹果原生就有cell的多选,不过做出来的效果是这样的

我的大概逻辑是这样考虑的

(一)先考虑右上角button的事情,平时是delete,当cell时编辑状态就换成done

(二)考虑cell的编辑状态

其实cell有一个函数可以直接对cell进行编辑

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{

return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;

}

下面这两个是执行cell选中和非选中时的转态

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{

}

接下来很明显就是对数组进行操作了,定义两个可变数组

@property(nonatomic,strong)NSMutableArray * list;

@property(nonatomic,strong)NSMutableArray * removeList;

在viewDidLoad里面操作右导航,并且把两个数组初始化

- (void)viewDidLoad {

[super viewDidLoad];

UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithTitle:@"Delecte" style:UIBarButtonItemStyleBordered target:self action:@selector(editCell:)];

self.navigationItem.rightBarButtonItem = item;

if (self.list == nil) {

self.list = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

}

self.removeList = [[NSMutableArray alloc] init];

}

- (void)editCell:(id)sender{

[self.tableView setEditing:!self.tableView.editing animated:YES];

if (self.tableView.editing) {

[self.navigationItem.rightBarButtonItem setTitle:@"Done"];//cell可编辑状态右导航切换主题

}else{//进入不可编辑转态,就是还原了

[self.navigationItem.rightBarButtonItem setTitle:@"Delete"];

if (self.removeList.count>0) {//大于零就进行移除操作

//逻辑:1,移除数组大于零,list执行移除remove里面的数组

2.cell刷新数据

3,remove清零

[self.list removeObjectsInArray:self.removeList];

[self.tableView reloadData];

[self.removeList removeAllObjects];

}

}

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

return self.list.count;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"ID"];

if (cell == nil) {

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ID"];

}

cell.textLabel.text = self.list[indexPath.row];

return cell;

}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{

return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

[self.removeList addObject:self.list[indexPath.row]];//当选中时操作移除的数组增加选中转态数组里面的元素

}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{

[self.removeList removeObject:self.list[indexPath.row]];//非选中就移除

}

时间: 2024-12-14 18:54:51

UITableViewCell 添加 checkbox 多选 (二)的相关文章

UITableViewCell 添加 checkbox 多选

由于网络原因看不到效果,我的是左边是一个大分类的cell,右边是一个小分类的cell,小分类的支持多选然后传给上一个界面,这里传值可以用block 其实说到底就是cell增加一个手势,用这个手势判断是不是选中状态,当点击cell的时候,判断cell上面的数据(这里我是定义了一个可变数组selectArray,一进入这个页面开始加载数据时这个数组就初始化,并用数组初始化,初始化的个数为父类tableview的数组个数,在定义一个int行数据,只要点击了父类tableview就记录这个cell,如果

javascript如何动态添加checkbox复选框

javascript如何动态添加checkbox复选框:在实际应用中可能需要动态的添加复选框,下面就简单介绍一下如何实现此效果.单纯的创建一个复选框是很容易的,代码如下: var oCheckbox=document.createElement("input"); oCheckbox.setAttribute("type","checkbox"); oCheckbox.setAttribute("id","mayi&

通过编写串口助手工具学习MFC过程——(五)添加CheckBox复选框

通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个串口助手再次熟悉一下MFC,并做了一下记录,以便方便以后查阅.做的过程中多是遇到问题直接百度和谷歌搜索来的,所以很多都是不求甚解,知其然不知其所以然.另外做此工具只是为了熟悉了解,许多功能还没有完善!(开发工具VS2008) (五)添加CheckBox复选框 属性:Caption用于显示文本内容.

C#ListView控件添加Checkbox复选框并获取选中的数目,检查checkbox是否勾选

原地址:http://blog.csdn.net/lucky51222/article/details/41892429 1.添加复选框:listView1.CheckBoxes = true; 2.选中listview并获取选中的数目: [csharp] view plain copy private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e) { e.Item.Selected = e.Item.Chec

checkbox全选-取消-再全选没有显示问题

源码: <input type="checkbox" id="cleckAll" />全选 <div class="list"> <input type="checkbox" />复选一 <input type="checkbox" />复选二 <input type="checkbox" />复选三 </div>

点击文本框弹出可供选择的checkbox复选框代码实例

点击文本框弹出可供选择的checkbox复选框代码实例:本章节分享一段代码实例,它能够点击文本框的时候,能够弹出下拉的checkbox复选框,选中复选框就能够将值写入文本框中,可能在实际应用中的效果没有这么直白简单,不过可以作为一个例子演示,以便于学习者理解和扩展.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author&qu

js做全选,用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false

用一个checkbox复选框做多个checkbox复选框的全选按钮,有一个复选框未被选择时,全选按钮的checked就为false,当所有checkbox都被选中时,全选按钮也被选中. 详解: 有两种方式使<input type="checkbox" />中的复选框被选中. 方法一:直接在HTML行间中添加checked属性.   eg:<input type="checkbox" checked /> 方法二:使用javascript使in

【转载】checkbox复选框的一些深入研究与理解

转载来自:原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com] 一.一开始的唠叨最近忙于开发,自淫于项目的一步步完工,心浮躁了.舍近而求远,兵家之大忌.我是不是应该着眼于眼前的东西,好好的静下心来,超过一般人的沉静与沉浸,研究最基本的东西呢?这番思考,让我找到了一些方向. 对于checkbox,从我开始接触HTML开始,陆陆续续也研究过好多次,然而多是零星的知识点的累加,或是掌握了些表象的东西,是否深入核心,是否深入其本质,是否有了完善的总结,是否

转 纯CSS设置Checkbox复选框控件的样式

Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至可以让它看起来一点也不像复选框. 在本教程中,我们将创建5个不同的选择框,你可以在你的网站上使用它. css-style-checkboxes 查看演示,可以看到我们将要创建的复选框样式. 演示地址 首先,需要添加一段CSS隐藏所有的Checkbox复选框,下面我们会改变它的外观.要做到点需要添加一