有没有什么方法可以知道 UITableView
什么时候已经完成了从它的数据源请求数据的过程?
相关视图控制器(UITableViewController
)的 viewDidLoad
/viewWillAppear
/viewDidAppear
方法在这里都没有用,因为它们都过早地触发了。它们中没有一个(完全可以理解)保证对数据源的查询暂时已经完成(例如,直到视图被滚动)。
我发现的一个变通方法是在 viewDidAppear
中调用 reloadData
,因为当 reloadData
返回时,表视图 是保证已经完成了目前所需的数据源查询。
然而,这似乎相当令人讨厌,因为我假设它导致数据源在首次加载时被请求两次相同的信息(一次是自动的,一次是因为 reloadData
调用)。
我想这样做的原因是,我想保留的 UITableView
的滚动位置-但权利下降到像素水平,而不只是最近的行。
在恢复滚动位置时(使用 scrollRectToVisible:animated:
) ,我需要表视图中已经有足够的数据,否则 scrollRectToVisible:animated:
方法调用什么也不做(如果在 viewDidLoad
、 viewWillAppear
或 viewDidAppear
中单独调用,就会发生这种情况)。