什么时候UITableView reloadData会更新visibleCells?

时间:2011-04-29 12:42:26

标签: objective-c uitableview timing

我有一个UITableView实例tableView,它显示来自服务器的数据。

tableView必须等到收到数据,然后调用它的reloadData方法。一切都很好,效果很好。

现在我有一个特定的方法,我想在tableView完成创建第一组visibleCells后立即执行。对于此示例,我将调用方法performFancyActionOnVisibleCells。但是,似乎reloadData动作是异步的,所以我不能只做

[tableView reloadData];
[self performFancyActionOnVisibleCells];

因为当执行第二行时,visibleCells仍然是空的,所以在调用之前我将不得不等待一段时间。这让我想到了我的问题。

据我所知,没有像tableView:didFinishReloadingData那样的委托方法。但是,如果我想确认performFancyActionOnVisibleCells reloadData已完成更新visibleCells属性的确定性,那么它会在哪里?

干杯,
EP。

2 个答案:

答案 0 :(得分:0)

要直接回答您的问题,我不知道您正在寻找的任何代表回调。

但是,reloadData会在每个可见行上调用[tableView cellForRowAtIndexPath],因此您可以在该方法的底部调用。

我不认为[tableView cellForRowAtIndexPath]会被调用到你表中的每个单元格,但是在单元格可见之前(例如,滚动时),UIKit会根据需要调用它。

答案 1 :(得分:0)

达米恩说得对,但我认为你应该看看你的策略......用户可能不会期望弹出一些东西(随机时间)。我认为您应首先显示单元格然后填充它们。使用进度指示器直到数据到达。然后,当数据到达时,将其绘制到单元格中,然后您可以运行fancyActionMethod。我希望这有帮助!