UITableViewDelegate的方法

设置编辑模式 中得cell的编辑样式(删除或插入)
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath;

UITableViewDataSource的方法
     
     设置该单元格能否被编辑
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath;
     设置该单元格能否被移动
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath;

对单元格进行编辑时会调用此方法
删除单元格:1)先删除数据源 2)接着删除单元格 3)刷新单元格
插入单元格:1)先插入数据源 2)接着插入单元格 3)刷新单元格
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
//判断编辑样式(删除或插入)
if (editingStyle==UITableViewCellEditingStyleDelete)  
{  
//必须要先删除数据源

NSMutableArray *arr=[self.dataSourceArray objectAtIndex:indexPath.section];

[arr removeObjectAtIndex:indexPath.row];

//接着删除单元格(参数是数组,可能删除多行)
          [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]withRowAnimation:UITableViewRowAnimationFade];
//删除完后要刷新tableView
          [tableView reloadData];
     }
else if (editingStyle==UITableViewCellEditingStyleInsert)  //插入模式
     {
//下面根据实际情况
          CSFriends *friend=[[CSFriends alloc]init];
          friend.imageName=[NSString stringWithFormat:@"%d.jpg",2];
          friend.name=@"超级布罗利";
          friend.skill=@"超级赛亚人";
          //必须要先插入数据源
          NSMutableArray *arr=[self.dataSourceArray objectAtIndex:indexPath.section];
[arr insertObject:friend atIndex:indexPath.row];
//接着插入单元格(参数是数组,可能插入多行)
          [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]withRowAnimation:UITableViewRowAnimationMiddle];
//插入后要刷新tableView
          [tableView reloadData];
    }

}
      对单元格进行移动时会调用此方法
 
移动单元格:1)先将要移动的数据从数据源的原位置中删除 2)接着再讲数据插入数据源的新位置 3)刷新单元格
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
//先找到要移动的数据(sourceIndexPath是移动前的位置)
NSMutableArray *array=self. dataSourceArray[sourceIndexPath.section];

CSFriends *friend= array[sourceIndexPath.row];

//将该数据从数据源删除
[array removeObject:friend];
     //再找到新位置的数据源(destinationIndexPath是移动后的位置)
     NSMutableArray *array=self. dataSourceArray[destinationIndexPath.section];
//将数据先添加入数据源的新位置
     [array insertObject:friend atIndex:destinationIndexPath.row];
//最后刷新单元格
     [tableView reloadData];

}

转载于:https://www.cnblogs.com/caixiang/p/4594736.html

UITableViewCell单元格的删除、插入、移动相关推荐

  1. iOS:多个单元格的删除(方法二):

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

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

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

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

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

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

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

  5. 【openpyxl】操作单元格,获取单个或多个单元格并修改数据、合并单元格、删除行列、移动单元格

    1.获取和修改单个单元格 from openpyxl import Workbook wb = Workbook() ws = wb.activecell = ws["a6"] # ...

  6. VBA常用小代码:在单元格中批量插入图片

    代码如下: Sub InsertPic() "ExcelHome VBA编程学习与实践 by:看见星光 Dim Arr, i&, k&, n&, pd& Di ...

  7. list Control实现单元格编辑与插入Combo Box

    之前写过一篇(list Control实现单元格编辑)文章,那篇文章不是很完善执行的时候有时会出错,这篇文章经过完善后还加入了Combo Box功能! 这里我就只是晒一下我的代码; 头文件: [c-s ...

  8. Python openpyxl匹配单元格内容删除excel指定行

    import openpyxl from openpyxl import load_workbook wb = openpyxl.load_workbook(filepath) ws = wb['Sh ...

  9. Excel如何把一个单元格的内容插入另一个单元格内容之间

    比如,我要把单元格H1中的订单号PO2035插入单元格H2中,期望在H2中显示"请把PO2035号码写在运单上."应该怎么做呢? 在H2中,写入以下公式: ="请把&qu ...

最新文章

  1. hdu 5396 Expression
  2. 多款 Linux 发行版悄然放弃支持 PowerPC
  3. JS的NaN与isNaN
  4. Pro*C/C++简单介绍
  5. 红帽取代 Oracle,接管 OpenJDK 8 和 OpenJDK 11 | 极客头条
  6. 手把手教你如何用 TensorFlow 实现基于 DNN 的文本分类
  7. python的第三方库是干什么用的-Python最强大的第三方库,你有必要了解一下!
  8. FireEye:K3chang行动***欧洲外交部门
  9. MATLAB线性规划相关函数用法
  10. recv( )函数返回值说明
  11. 汉语的音素,音节,汉字,短语,句子
  12. 交换芯片CPSS-MARVELL 98DXX交换处理流程
  13. ERROR ITMS-90022 ERROR ITMS-90096
  14. 【Enhanced Time-Frequency Representation and Mode Decomposition】翻译1
  15. 由access key泄露浅谈云安全
  16. 用python画圆锥_echarts 怎么画椭圆或者画圆锥
  17. 微信公众平台测试号申请
  18. Unity小游戏——3D坦克大战
  19. javaScript canvas从入门到骨灰级玩家(基础篇)
  20. JSP SSH图书系统myeclipse开发sql数据库BS模式java编程mvc结构 详细设计

热门文章

  1. 你我共建python技能树,python技能树测评
  2. Flutter侧边栏
  3. Python随机森林求各指标权重
  4. ACdream 1210 Chinese Girls' Amusement
  5. 创新指南|5大策略让创新业务扩张最大避免“增长痛苦”
  6. C-企业员工管理系统
  7. IOS开发-学习论坛和开源网站
  8. 详解Libevent网络库
  9. export、export default的使用
  10. Linux下bin文件的安装