ios:[tableView reloadData]

时间:2012-10-04 11:55:49

标签: ios

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

我想在tableview的末尾添加一些行。我怎么能这样做?

之间有什么区别
[self.tableView reloadData] 

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

3 个答案:

答案 0 :(得分:4)

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

如果您只需更新某些单元格,即更新,插入,删除或移动,请改用相应的更新方法。这甚至可以激活变化。

答案 1 :(得分:1)

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

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

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

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

答案 2 :(得分:1)

如果要重新加载一个部分或几行,还有一些方法可以执行此操作。

对于行:

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

对于部分:

[self.tableView reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation];