5

[tableView reloadData]会影响ios的性能吗?是什么[tableView reloadData]?它是如何重新加载表格视图的?有没有其他方法可以重新加载 tableview?

我想在表格视图的末尾添加一些行。我怎样才能做到这一点?

和有什么区别

[self.tableView reloadData] 

[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:insertIndexPathswithRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];
4

3 回答 3

4

reloadData 就是这样做的——对表视图(可见部分)的完整更新。

如果您只需要更新某些单元格,即更新、插入、删除或移动,请改用适当的更新方法。这甚至会为更改设置动画。

于 2012-10-04T12:00:56.643 回答
1

AFAIK,[self.tableView reloadData] 更多用于如果您的数据已完全更改并且您想要显示最新版本(或者过滤器已更改等...)

ie 想象一下,您有一张显示足球运动员的桌子,您“轻弹开关”以显示来自不同球队的足球运动员。在这种情况下,您倾向于使用 reloadData。这将刷新整个表。

[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:insertIndexPathswithRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];

用于将新数据添加到显示的当前数据集中。这不会刷新整个,但会将新行动画化到当前表中。

于 2012-10-04T12:01:21.773 回答
1

如果您想重新加载一个部分或几行,也有执行此操作的方法。

对于行:

[self.tableView reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation];

对于部分:

[self.tableView reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation];
于 2012-10-04T12:15:22.097 回答