1. 删除的效果

    • Automatic
    • Bottom
    • Fade
    • left
    • middle
    • none
    • right
    • top
  2. 简单删除
    先删除数据源里的数据,然后再删除cell,否者会报错

        let indexPath = NSIndexPath.init(forRow: 1, inSection: 0)
    let indexPath1 = NSIndexPath.init(forRow: 3, inSection: 0)
    //title是数据源
    self.titles.removeAtIndex(0)
    self.titles.removeAtIndex(0)
    self.tableView?.deleteRowsAtIndexPaths([indexPath,indexPath1], withRowAnimation: .Left)
    ``` 如果先删除cell,再删除数据库,会抛出exception
self.tableView?.deleteRowsAtIndexPaths([indexPath,indexPath1], withRowAnimation: .Left)
//title是数据源
self.titles.removeAtIndex(0)
self.titles.removeAtIndex(0)

2016-07-30 21:44:26.613 UITableViewLearn[14976:575144] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (4) must be equal to the number of rows contained in that section before the update (4), plus or minus the number of rows inserted or deleted from that section (0 inserted, 2 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out).'

UIKit在调用deleteRowsAtIndexPaths时,会判断前后数据源的一致性,如果前后不一致,会抛出异常。然而只是判断cell的个数是否一致。如果删除了第0、1列的数据,然后删除第2、3列的cell,也不会报错。

    let indexPath = NSIndexPath.init(forRow: 2, inSection: 0)
let indexPath1 = NSIndexPath.init(forRow: 3, inSection: 0)
//title是数据源
self.titles.removeAtIndex(0)
self.titles.removeAtIndex(0)
self.tableView?.deleteRowsAtIndexPaths([indexPath,indexPath1], withRowAnimation: .Left)

上面的不会报错

  1. 简单插入

    同样是先插入数据,再插入cell。

    self.titles.insert("insert", atIndex: 1)
    self.tableView?.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Left)
  2. 同时删除和插入

    • 准备数据源
    • 调用beginUpdates()
    • 调用deleteRowsAtIndexPaths, insertRowsAtIndexPaths:等方法
    • 调用endUpdates方法
  3. 对indexPath进行操作的次序

    • 在一个animation block(beginUpdates()endUpdates之间的部分)中,所有的插入选择操作都发生在删除操作之后
    • 删除和reload操作的指定的indexpath是原来tableView(未发生动画之前)的indexPath
    • 插入操作指定的indexPath是前面代码执行完成以后的新tableView的indexPath。
      于此对比,如果对一个mutable数组进行插入和删除,那么前面的删除和插入操作会改变这个数组某个元素的index。

UITabelview的删除的更多相关文章

  1. "无法删除数据库,因为该数据库当前正在使用"问题解决

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 以前刚学数据库的时候比较苦恼这个问题,今天删除的时候又看见了,正好一起记录一下 ...

  2. php批量删除

    php批量删除可以实现多条或者全部数据一起删除 新建php文件 显示数据库中内容: <table width="100%" border="1" cell ...

  3. linux centos中添加删除修改环境变量,设置java环境变量

    前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...

  4. ASP.NET MVC一次删除多笔记录

    批量删除数据记录,如下面的截屏: 先选中想删除的记录,然后点一下删除铵钮,系统将把选中的记录一次性删除.在此,Insus.NET不想每删除一笔记录连接一次数据库. 因此需要把选择的记录一次上传至服务器 ...

  5. 如何区别数据库删除语句drop与delete与truncate?

    1.delete:删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行) 删除某一行:delete from 数据表名称 where 列名称=值: 删除所有行:delete*fro ...

  6. sql 删除表中的重复记录

    嗯,遇见了表中存在重复的记录的问题,直接写sql删除时最快的,才不要慢慢的复制到excel表中慢慢的人工找呢.哼. 如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长) sel ...

  7. ORACLE从共享池删除指定SQL的执行计划

    Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,用于从对象库缓存中刷新特定对象,例如游标,包,序列,触发器等.也就是说可以删除.清理特定SQL的执行计划 ...

  8. mysql删除重复记录语句的方法

    例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name ...

  9. SQL Server 批量删除存储过程

    原理很简单的'drop proc xxx'即可,下面有提供了两种方式来删除存储过程,其实本质是相同的,方法一是生成删除的sql后直接执行了,方法二会生成SQL,但需要检查后执行,个人推荐第二种做法. ...

随机推荐

  1. leetcode第12题--Integer to Roman

    Problem: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range ...

  2. Android项目--浅析系统通讯录中的那些方法

    系统通讯录,以前的版本虽然过时了,不过有些东西还是可以用. 1.开启系统联系人添加 /** 添加联系人 */ Intent intent = new Intent(Intent.ACTION_INSE ...

  3. WebService它CXF这三个音符(Service接口实现类)

    ITeacherServiceImpl.java: /** * @Title:ITeacherServiceImpl.java * @Package:com.you.service.impl * @D ...

  4. Centos中如何配置Texlive2013中文字体的问题

    Centos中如何配置Texlive2013中文字体的问题: 第一步是下载你需要的字体,我从windows/fonts中拷贝的比较多,你只要复制你需要的字体即可. 注意只要文件扩展名为ttf的文件,t ...

  5. ASP.NET MVC + EF 利用存储过程读取大数据

    ASP.NET MVC + EF 利用存储过程读取大数据,1亿数据测试很OK 看到本文的标题,相信你会忍不住进来看看! 没错,本文要讲的就是这个重量级的东西,这个不仅仅支持单表查询,更能支持连接查询, ...

  6. sqlclr创建表值函数案例

    ----------------------------------------------:定义表值类型:(1.一定返回的是IEnumerable2.一定带参数3.一定有FillRowMethodN ...

  7. .Net集成PayPal的Demo

    .Net集成PayPal的Demo 近来项目中需要使用Paypal(贝宝)支付,研究了一下接口,真是吐血,花了一个下午+一个晚上,屡败屡战,海淘了若干文档,终于尝试成功了,分享一下,希望对将要使用pa ...

  8. WinForm媒体播放器

    媒体播放控件(Windows Media Player )的常用属性和方法,并且利用它设计一个简单的媒体应用程序——媒体播放器.该媒体播放器可以播放 wav.avi.mid 和 mp3 等格式的文件. ...

  9. [转]影响Cache的几个HTTP头信息

    原文地址:http://hi.baidu.com/feilala_fly/item/f79eca08fbf389026c9048a7 Http的Cache机制总共有4个组成部分: Cache-Cont ...

  10. jQuery图片切换插件jquery.cycle.js

    Cycle是一个很棒的jQuery图片切换插件,提供了非常好的功能来帮助大家更简单的使用插件的幻灯功能 下载cycle插件并引入,此时,注意把引入它的代码放在引入jQuery主文件之后. <he ...