1

对于UITableViews,插入、删除和移动操作的顺序在更新块内无关紧要,因为直到-endAnimations调用它们才执行它们,然后它们作为批量更新执行。

假设我有 3 个数组:
- 删除(只是一个索引)
- 插入(索引 + 对象)
- 移动(两个索引)

我如何正确地将这个“增量”应用于现有数组,就像UITableView在它的批量更新中一样?

4

1 回答 1

2

诀窍是您保留一个字典(或实际上是数组)根据每次更改期间发生的情况来解释索引号。原来 0 表示 0,1 表示 1,以此类推。但是如果你删除第 1 项,比方说,那么 2 表示 1,3 表示 2,等等 - 它上面的所有东西都必须被推下,这样如果你要求将第 2 项与某物交换,我们仍然可以找到你想要的对象在你说的时候按“2”。同样,如果您随后在第 2 项中插入某些内容,则必须将其上方的所有内容都推起来。

现在您可以进行删除,然后是插入,然后是移动。请注意,您必须以反向排序的索引顺序进行删除(或使用索引集,以便您可以一次将它们全部删除)并以正常的排序顺序进行插入。

于 2014-08-07T22:17:14.153 回答