0

By updating the table, is there a difference, when i call let's say insertRowsAtIndexPaths more times, with an array of 1 object, comparing to calling it once, with an array of all objects?

This question also applies to reload, and delete, not just insert

This may look like a trivial question, but the update mechanism is quite complex, especially if you mix inserts, deletes, reloads and not sure if this can affect the animation

[self.tableView beginUpdates];

[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:1 inSection:sectionIndex]] withRowAnimation:UITableViewRowAnimationFade];

[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:2 inSection:sectionIndex]] withRowAnimation:UITableViewRowAnimationFade];

[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:3 inSection:sectionIndex]] withRowAnimation:UITableViewRowAnimationFade];

[self.tableView endUpdates];

Comparing to

[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:1 inSection:sectionIndex], [NSIndexPath indexPathForRow:2 inSection:sectionIndex], [NSIndexPath indexPathForRow:3 inSection:sectionIndex]] withRowAnimation:UITableViewRowAnimationFade];
4

1 回答 1

2

只要您在 begin/commitUpdate 调用之间执行此操作,就没有区别。

确切的方法在TableView Programming Guide中的“操作顺序和索引路径”部分中进行了描述

动画块中的删除和重新加载操作指定应该删除或重新加载原始表中的哪些行和部分;插入指定应将哪些行和部分添加到结果表中。用于标识节和行的索引路径遵循此模型。另一方面,在可变数组中插入或删除项目可能会影响用于连续插入或删除操作的数组索引;例如,如果您在某个索引处插入一个项目,则数组中所有后续项目的索引都会递增。

于 2013-08-25T09:11:42.877 回答