UITableView-批量操作

  • 点击编辑按钮进入编辑模式

    // 进入编辑模式
    [self.tableView setEditing:!self.tableView.isEditing animated:YES];
    // 允许在编辑模式进行多选操作
    self.tableView.allowsMultipleSelectionDuringEditing = YES;
  • UITableView的代理方法
    /**
      * 只要实现这个方法,左划cell出现删除按钮的功能就有了
      * 用户提交了添加(点击了添加按钮)\删除(点击了删除按钮)操作时会调用
      */
      - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
      {
          if (editingStyle == UITableViewCellEditingStyleDelete) {  // 点击了“删除”
              // 删除模型
              [self.deals removeObjectAtIndex:indexPath.row];
    
              // 刷新表格
      //        [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
              [self.tableView reloadData];
          } else if (editingStyle == UITableViewCellEditingStyleInsert) { // 点击了+
              NSLog(@"+++++ %zd", indexPath.row);
          }
      }
      /**
      * 这个方法决定了编辑模式时,每一行的编辑类型:insert(+按钮)、delete(-按钮)
       */
      - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
      {
          return indexPath.row % 2 == 0? UITableViewCellEditingStyleInsert:     UITableViewCellEditingStyleDelete;
      }

    这个方法可以设置左滑功能的样式

      - (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{
          UITableViewRowAction *action = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"增加" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
          // 点击增加的时候调用
          NSLog(@"增加");
    
      }];
      action.backgroundColor = [UIColor greenColor];
    
      UITableViewRowAction *action1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
          // 点击删除的时候调用
          NSLog(@"删除");
      }];
      return @[action,action1];
    }

时间: 2024-11-10 17:27:37

UITableView-批量操作的相关文章

UITableView的简单总结与回顾

今天突发奇想的想对UItableView做一下汇总,感觉在编程中这个控件可以千变万化也是用的最多的一个了,下面就为大家简单总结下这个控件,也许还有不足,不过还是请各位不吝赐教了哈,那么我就开始了,我会从九个方面对这个控件做一个简单的综述,希望对大家有帮助吧,嘿嘿. 一.UITableView概述 UITableView继承自UIScrollView,可以表现为Plain和Grouped两种风格,分别如下图所示:          其中左边的是Plain风格的,右边的是Grouped风格,这个区别

UITableView 的增删改 自定义UITableViewCell

1.UITableView的增删改 //设置编辑模式 [self.tableView setEditing:YES animated:YES]; //可以不写 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { return YES; 进行对UITabelView编辑时,先对数据源进行操作,后对数组进行操作 (1)删除.插入 //确定编辑的选项 //UITableV

iOS UITableView学习笔记

下面分9个方面进行介绍: 一.UITableView概述 UITableView继承自UIScrollView,可以表现为Plain和Grouped两种风格,分别如下图所示:          其中左边的是Plain风格的,右边的是Grouped风格,这个区别还是很明显的. 查看UITableView的帮助文档我们会注意到UITableView有两个Delegate分别为:dataSource和delegate. dataSource是UITableViewDataSource类型,主要为UIT

UITableView(转)

一.UITableView概述 UITableView继承自UIScrollView,可以表现为Plain和Grouped两种风格,分别如下图所示:          其中左边的是Plain风格的,右边的是Grouped风格,这个区别还是很明显的. 查看UITableView的帮助文档我们会注意到UITableView有两个Delegate分别为:dataSource和delegate. dataSource是UITableViewDataSource类型,主要为UITableView提供显示用

iOS边练边学--tableView的批量操作

一.tableView批量操作方法一:(自定义) <1>在storyboard中添加imageView控件,用来操作当cell被选中后显示图标 <2>拖线,在自定义控件类中与imageView控件建立连接 <3>在模型类中增加一个控制imageView是否显示的数据.运用MVC思想,M变动,V会跟着变动.不要直接拿到cell修改imageView的显示状态,这样会在cell循环利用中出现混乱 <4>控制器中的代码 控制器中要实现tableView的代理方法

UITableView(转自一片枫叶)

UITableView学习笔记        作者:一片枫叶 看TableView的资料其实已经蛮久了,一直想写点儿东西,却总是因为各种原因拖延,今天晚上有时间静下心来记录一些最近学习的TableView的知识.下面进入正题,UITableView堪称UIKit里面最复杂的一个控件了,使用起来不算难,但是要用好并不容易.当使用的时候我们必须要考虑到后台数据的设计,tableViewCell的设计和重用以及tableView的效率等问题. 下面分9个方面进行介绍: 一.UITableView概述

UITableView API大百科

UITableView接口 常规 - (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style 初始化方法,调用init方法初始化时默认style为UITableViewStylePlain @property (nonatomic, readonly) UITableViewStyle style; 表视图类型,包括UITableViewStylePlain和UITableViewStyleGrouped @

iOS开发——项目实战总结&amp;UITableView性能优化与卡顿问题

UITableView性能优化与卡顿问题 1.最常用的就是cell的重用, 注册重用标识符 如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell 如果有很多数据的时候,就会堆积很多cell.如果重用cell,为cell创建一个ID 每当需要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,如果没有再重新创建cell 2.避免cell的重新布局 cell的布局填充等操作 比较耗时,一般创建时就布局好 如可以将cell单独放到一个自定义类,初始化时就布局好

iOS开发tips-神奇的UITableView

概述 UITableView是iOS开发中使用频率最高的UI控件,在前面的文章中对于UITableView的具体用法有详细的描述,今天主要看一些UITableView开发中的常见一些坑,这些坑或许不深,但是如果开发中注意不到的话往往比较浪费时间. 神奇的section header 事情的起因是一个网友说要实现一个类似下图界面,但是不管是设置sectionHeaderHeight还是代理方法中实现func tableView(_ tableView: UITableView, heightFor

ios UISearchDisplayController 实现 UITableView 搜索功能

UISearchDisplayController 是苹果专为 UITableView 搜索封装的一个类. 里面内置了一个 UITableView 用于显示搜索的结果.它可以和一个需要搜索功能的 controller 关联起来,其它的像原 TableView 和搜索结果 TableView 的切换, mask 的显示等等都 封装好了,使用起来非常非常的简单.特别是要实现全屏搜索时使用最多. 全屏搜索的意思是如果你用了  NavigationBar 当点击搜索框时 TableView 会自动弹上去