insertRowsAtIndexPaths 和 deleteRowsAtIndexPaths 的使用

来源:互联网 发布:大数据架构师培训视频 编辑:程序博客网 时间:2024/06/09 23:19

效果图:

1.插入成功:


2.删除成功:


3.主要记录下思路:

3.1>首先理清tableView的数据源方法和代理方法的调用周期

numberOfSectionsInTableView

numberOfRowsInSection

heightForRowAtIndexPath

3.1.1)以上三个方法,系统默认首先按顺序调用两遍以作准备。然后系统就会调用具体的cell的方法:

cellForRowAtIndexPath

更为重要的是:以上三个方法,可以归结为只要有cell的变化(无论新增或删除)都会调用。

3.1.2)系统每调用一次“cellForRowAtIndexPath方法必会再调用一次“heightForRowAtIndexPath”方法。

3.1.3)“”方法可归结为只要有cell的新增才会调用。没有新增(即删除不会调用)。

3.2>所以“insertRowsAtIndexPaths”方法比如插入两个路径时,只会重新调用“cellForRowAtIndexPath”方法两次,路径为新增加的这两个路径(“indexPath.row”不再是从0开始

3.2.1)“insertRowsAtIndexPaths”方法时需要注意的问题:插入路径的同时,要同步插入数据,以保证插入后的数据总量正确(比如原来数据为2个,插入两条路径,然后数据也要插入两条,以达到4个数据总量)
3.2.2)“
deleteRowsAtIndexPaths”方法时需要注意的问题(删除多个路径时):同样删除路径的时候,要同步删除数据。这个方法是一个一个删除数据的,当删除一个数据后,数据的索引会重新排列,需要特别注意


4.插入可以看成是一个二级列表的展开。二级列表展开的另一种思路:

4.1>首先可以把第一级列表看成是tableView的多个组(sections)。然后用“viewForHeaderInSection”自定义第一级列表的cell,那么第二级列表就是点击每组所展现的具体rows。



0 1
原创粉丝点击