UITableView03-批量操作

批量操作

  • 在开发过程中,我们经常会遇到表格需要批量操作的。
    • 比如说:购物车

实现思路

  • 使用临时数组

    • 增加一个没有显示出来的图片,在数据模型中定义一个属性,标识是否选中
    • 然后在选中的时候修改模型属性的值,来控制图片的显示和隐藏
    • 然后刷新数据
    • 点击删除,遍历所有的数据源,使用一个临时数组将需要删除的数据放进去,然后调用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写好之后上传

你可能感兴趣的:(UITableView03-批量操作)