ios – UITableView中批量行插入/删除的顺序是什么?

前端之家收集整理的这篇文章主要介绍了ios – UITableView中批量行插入/删除的顺序是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
UITableView允许您使用beginUpdates和endUpdates批量编辑操作.

我的问题是:我是否需要先知道它是删除还是插入?或者我可以在beginUpdates之前通过索引路径引用所有内容,它会神奇地工作吗?

假设我有一张桌子:

A (currently index path 0,0)
B (0,1)
C (0,2)
D (0,3)
E (0,4)
F (0,5)

我想把它变成:

A (0,0)
C (0,1)
D (0,2)
H (0,5)

因此,我删除了B(在0,1处)并且插入了H(在D-之后插入删除之前的0,4或之后的0,3).

那么,在我的开始/结束更新调用之间,哪些会起作用?

> deleteRowsAtIndexPaths:0,1,后跟insertRowsAtIndexPaths:
0,4
> deleteRowsAtIndexPaths:0,后跟
insertRowsAtIndexPaths:0,3
> insertRowsAtIndexPaths:0,4,然后是deleteRowsAtIndexPaths:0,1
> insertRowsAtIndexPaths:0,3,1

解决方法

相关的Apple文档是在 Ordering of Operations and Index Paths之下.

Deletion and reloading operations within an animation block specify which rows and sections in the original table should be removed or reloaded; insertions specify which rows and sections should be added to the resulting table. The index paths used to identify sections and rows follow this model.

因此,表视图将首先执行任何删除或更新操作,其索引路径引用原始表内容中的索引路径.然后执行插入,并且这些索引路径引用删除发生后的索引路径.

所以理论上你的数字’2’选项应该是你想要的.

猜你在找的iOS相关文章