有没有办法找出什么时候UITableView
从数据源请求数据?
相关视图控制器()的viewDidLoad
/ viewWillAppear
/ viewDidAppear
方法UITableViewController
都没有在这里使用,因为它们都过早发生.它们(完全可以理解)都不保证对数据源的查询暂时完成(例如,直到滚动视图).
一个解决办法,我发现是调用reloadData
的viewDidAppear
,因为当reloadData
返回时,表视图是保证完成尽可能多的,因为它需要暂时查询的数据源.
但是,这看起来相当令人讨厌,因为我认为这是因为reloadData
它首次加载时会导致数据源被要求提供相同的信息两次(一次是自动的,一次是因为调用).
我想要这样做的原因是我想要保留 - 的滚动位置UITableView
- 但是直到像素级别,而不仅仅是最近的行.
当恢复滚动位置(使用scrollRectToVisible:animated:
)时,我需要表视图中已经有足够的数据,否则scrollRectToVisible:animated:
方法调用什么都不做(如果您将调用单独放在任何一个中viewDidLoad
,则会发生这种情况,viewWillAppear
或者viewDidAppear
).