2011-04-29 100 views
2

我有一个显示来自服务器的数据的UITableView实例tableView什么时候UITableView reloadData已经更新了visibleCells?

tableView将不得不等待数据被接收,然后调用它的方法reloadData。一切都很好,很好。

现在我有一个特殊的方法,我希望在tableView完成创建第一组visibleCells后立即执行。对于这个例子,我将调用方法performFancyActionOnVisibleCells。不过,看来,该reloadData动作是异步的,所以我不能只是做

[tableView reloadData]; 
[self performFancyActionOnVisibleCells]; 

因为visibleCells还是空的,执行的是第二线的时候,我会打电话之前等一会。这使我想到了我的问题。

据我所知,没有代理方法,如tableView:didFinishReloadingData。但是,如果我想拨打performFancyActionOnVisibleCells确定reloadData已完成更新visibleCells属性,那么该在哪里?

干杯,
EP。

回答

0

要直接回答您的问题,我不知道您要查找的任何代表回拨。

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

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

+0

是tableview:cellForRowAtIndexPath:为每一行调用,但我正在查找表完成填充行后的第一个下一个机会。由于iPhone肖像,风景,iPad等原因,在这种方法下保留一个计数器不会削减它。我想我会继续寻找。 – epologee 2011-04-30 10:47:10

+0

我会用答案标记来幽默你的问题,虽然信息并不新,但这是我在所有其他选项失败后采取的措施。干杯。 – epologee 2011-05-02 18:42:53

0

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

+0

不,真的没有帮助:)但无论如何感谢。 – epologee 2011-04-30 10:44:35