批量操作
- 在开发过程中,我们经常会遇到表格需要批量操作的。
- 比如说:购物车
实现思路
-
使用临时数组
- 增加一个没有显示出来的图片,在数据模型中定义一个属性,标识是否选中
- 然后在选中的时候修改模型属性的值,来控制图片的显示和隐藏
- 然后刷新数据
- 点击删除,遍历所有的数据源,使用一个临时数组将需要删除的数据放进去,然后调用
removeObjectsInArray:
方法删除需要删除的数据 - 然后刷新数据
-
使用固定的数组
- 定义两个数组,一个是数据源dataArr,一个是保存需要删除的数据deleArr
- 在tableView:cellForRowAtIndexPath:方法中,如果deleArr中包含某一行的模型,就让标记显示出来,表明选中
- 在tableView: didSelectRowAtIndexPath:方法中,判断deleArr数组中是否有选中的模型,如果有,就从数组中删除,没有就添加进去,然后刷新表格
- 删除的时候只需要将deleArr数组中的数据从dataArr中删除,然后刷新表格,然后清空deleArr数组即可
- 使用系统自带的批量操作
- 在viewDidLoad方法中添加:
// 允许在编辑模式进行多选操作
self.tableView.allowsMultipleSelectionDuringEditing = YES;
- 实现了上面这一句代码的时候,当tableView进入编辑模式,就可以看到在每一行的左边,出现了多选的按钮
- 选中需要删除的行之后,点击删除按钮
- 删除的逻辑是:
- 获取所有选中的行
```objc
// 获得所有被选中的行
NSArray *indexPaths = [self.tableView indexPathsForSelectedRows];
```
- 然后根据行号遍历数据源,找到所有的要删除的数据
- 删除数据模型
- 刷新表格
- 自定义
- 自定义操作比较复杂,等demo写好之后上传
网友评论