前面介绍了万无一失的方法一,这里介绍删除单元格的第二种方式,通过删除单元格中的内容的方式进行操作:(但是这种情况有一个小的弊端,由于单元格重用机制,如果单元格内容一样时,标记的存在会造成误删)

删除前:

删除后:

  分析如下:(如果每一个单元格内容都不一样)采取删除单元格内容的方式是比较简单的方式,那么如何实现多个单元格的删除呢?

首先,定义两个必要的可变的数组,一个是用来存储初始化原始数据的,另一个是用来存储选中单元格后,从里面取出来的数据;

其次,通过数据源的方法将原始数据显示在表格中,同时通过代理的方法,即选中单元格的处理,来给选中的单元格添加指引视图(标记),并将首先选中的单元格内容取出存到数组中,(二次选中则将其取消标记并从数组中删除);

最后,原始数据数组将所有选中的单元格内容全部删除,与此同时,数据选中存储数组也直接清空数组,然后,将表格进行整体刷新即可。

代码如下:

  1 #import "ViewController.h"2 #define NUM 203 4 @interface ViewController ()<UITableViewDataSource,UITableViewDelegate>5 @property (weak, nonatomic) IBOutlet UITableView *tableView;6 @property (strong,nonatomic)NSMutableArray *products;      //原始的数据库存7 @property (strong,nonatomic)NSMutableArray *productStore; //选中的数据库存8 - (IBAction)deleteButtonClicked:(UIBarButtonItem *)sender;9 10 @end11 12 @implementation ViewController13 - (IBAction)deleteButtonClicked:(UIBarButtonItem *)sender14 {15     //1.将选中的所有产品从原始库存中删除16     [self.productStore enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {17         [self.products removeObject:obj];18     }];19     20     //2.清空选中的数据库存21     [self.productStore removeAllObjects];22     23     //3.整体刷新表格24     [self.tableView reloadData];25 }26 - (void)viewDidLoad {27     [super viewDidLoad];28     //初始化29     self.products = [NSMutableArray arrayWithCapacity:NUM];30     self.productStore = [NSMutableArray arrayWithCapacity:NUM];31     for(int i=0; i<NUM; i++)32     {33         NSString *product = [NSString stringWithFormat:@"product-%02d",i];34         [self.products addObject:product];35     }36     37     //设置数据源和代理38     self.tableView.dataSource = self;39     self.tableView.delegate = self;40 }41 42 #pragma mark -tableView的数据源方法43 //每一个scetion有多少个row44 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section45 {46     return self.products.count;47 }48 //设置每一个单元格的内容49 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath50 {51     //1.根据reuseIdentifier,先到对象池中去找重用的单元格对象52     static NSString *reuseIdentifier = @"productCell";53     UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:reuseIdentifier];54     //2.如果没有找到,自己创建单元格对象55     if(cell == nil)56     {57         cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];58     }59     //3.设置单元格对象的内容60     cell.textLabel.text = self.products[indexPath.row];61     //设置字体颜色62     cell.textLabel.textColor = [UIColor redColor];63     //设置字体大小64     cell.textLabel.font = [UIFont systemFontOfSize:20];65     //设置单元格颜色66     cell.tintColor  = [UIColor orangeColor];67     68     if([self.productStore containsObject:self.products[indexPath.row]]) //首次选中69     {70         //添加标记显示71         cell.accessoryType = UITableViewCellAccessoryCheckmark;72     }73     else //二次选中74     {75         //取消标记显示76         cell.accessoryType = UITableViewCellAccessoryNone;77     }78     return cell;79 }80 81 #pragma mark -tableView的代理方法82 //选中单元格时的处理83 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath84 {85     //获取当前选中的单元格86     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];87     88     //取出单元格中的产品89     NSString *product = self.products[indexPath.row];90     91     //对选中的单元格添加辅助指引视图,并将产品存储到数组中92     if([self.productStore containsObject:product]) //已经选中过一次93     {94         //取消标记95         cell.accessoryType = UITableViewCellAccessoryNone;96         97         //将产品从存储数组中删除98         [self.productStore removeObject:product];99     }
100     else    //首先选中
101     {
102         //添加标记
103         cell.accessoryType = UITableViewCellAccessoryCheckmark;
104
105         //将产品添加到存储数组中
106         [self.productStore addObject:product];
107     }
108 }
109 @end

转载于:https://www.cnblogs.com/daxiong520/p/4915994.html

iOS:多个单元格的删除(方法二):相关推荐

  1. 计算机表格大小怎么调整,excel把表格拉大_excel调整单元格大小的方法步骤详解...

    excel在单元格中要输入的数据太多了,二单元格的位置又太小了,怎么办,excel单元格的大小改怎么调,那就有小编告诉你两个可靠的方法吧.希望对你有帮助! excel调整单元格大小的方法一 1.打开一 ...

  2. html table拓宽,excel拉长单元格_excel调整单元格大小的方法步骤详解

    excel在单元格中要输入的数据太多了,二单元格的位置又太小了,怎么办,excel单元格的大小改怎么调,那就有阿呼告诉你两个可靠的方法吧.希望对你有帮助! excel调整单元格大小的方法一 1.打开一 ...

  3. 锁定单个或多个单元格与解锁方法

    http://office.jb51.net/excel2003/3598.html 企业管理的一项重要手段就是数据报表,同一归口管理的各个子单位的报表都用同一个格式和结构的软件,这就是常说的模板.在 ...

  4. EXCEL中将多个单元格内容合并到一个单元格中的方法(转帖+亲自实践)

    原帖位置:EXCEL中将多个单元格内容合并到一个单元格中的方法 http://t.excelhome.net/thread-3875-1-1.html 说明:这个技巧主要用到以下2个功能 1.Offi ...

  5. 【JAVA基础】在Word中合并单元格时删除重复值

    程序环境: 方法1:手动引入.将​ ​Free Spire.Doc for Java​ ​下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件.在IDEA中打开如下界面,将本地路径中的 ...

  6. Java 在Word中合并单元格时删除重复值

    程序环境: 方法1:手动引入.将​ ​Free Spire.Doc for Java​下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件.在IDEA中打开如下界面,将本地路径中的ja ...

  7. 如何实现一键Excel单元格计算公式删除保留格式

    如何实现一键Excel单元格计算公式删除保留格式 1 2 3 4 5 6 7 分步阅读 不借助其他软件,直接使用Excel,怎么实现Excel文件中的计算公式的去除,同时又能保留住相应单元格的格式. ...

  8. VBA-Excel中单元格的引用方法

    VBA-Excel中单元格的引用方法 使用VBA对Excel中的单元格或单元格区域进行选择有很多种方法,可以归结为两大类: 使用行列数进行选择 根据已经选择的单元格(区域)进行再选择 1.使用rang ...

  9. JAVA EXCEL导出合并单元格自定义封装方法

    转载在C站上面看到一个大神写的自定义封装方法 转载地址:springboot 使用Poi 自定义封装方法 合并excel中的单元格_Tongyao-CSDN博客_springboot合并单元格 之前都 ...

最新文章

  1. 使用 Node.js 开发简单的脚手架工具
  2. cglib中Enhancer的简单使用
  3. 刷magisk模块后不能开机_联想启天商用电脑刷BIOS或维修换主板后 开机叫两声处理办法...
  4. makefile常用讲解(2)
  5. 高等数学二python实现导数与微分
  6. Spring MVC拦截器(Interceptor)的配置及使用
  7. 六款值得推荐的android(安卓)开源框架简介
  8. 【工具】开发环境之vagrant
  9. nsis如何设置运行安装包传参_使用NSIS制作安装包
  10. 反编译,修改jar文件
  11. neo4j图数据库导入scv文件
  12. 【学习记录】QT5 的简单界面设计及错误总结
  13. 2019DTCC大会感受
  14. 软件智能:aaas系统 后天八卦-aaas作为组织者的数据结构及其运行时
  15. 代理模式——远程代理(一)
  16. 帝国CMS7.5仿千图网图片素材下载模板升级版
  17. python给成绩表加上姓名列_Python Pandas 基本操作教学之成绩表
  18. PHP+Laravel+Fpdi+Fpdf 在PDF模板上编辑自定义文字并输出新PDF文件示例
  19. java酒店管理系统_java酒店管理系统(源码+数据库脚本)
  20. lombok 异常:Lombok needs a default constructor in the base class less... (Ctrl+F1) Inspe

热门文章

  1. Hive学习笔记 —— Hive的体系结构
  2. 房地产萧条的两个标志
  3. PDFMaker无法找到Adobe PDF Printer的打印机驱动
  4. bp神经网络代码_机器学习(周志华)课后习题——第五章——神经网络
  5. 取消Ajax请求 || Ajax重复请求问题
  6. Oracle 技巧篇-快速批量删除当前数据库连接的用户,一键清空所有session会话方法
  7. CTFshow php特性 web123
  8. [YTU]_2446( C++习题 输入输出--私有继承)
  9. 三维空间碰撞问题;空间中两直线的最短距离及最近点
  10. php orm url,PHP ORM使用之