Есть ли способ узнать, когда a UITableViewзакончил запрашивать данные из своего источника данных?
Ни один из методов viewDidLoad/ viewWillAppear/ viewDidAppearсвязанного контроллера представления ( UITableViewController) здесь не используется, поскольку все они срабатывают слишком рано. Ни один из них (вполне понятно) не гарантирует, что запросы к источнику данных на данный момент завершены (например, пока представление не будет прокручено).
Один из способов я нашел позвонить reloadDataв viewDidAppear, так как , когда reloadDataвозвращается, как таблица будет гарантирован завершением запроса источника данных столько , сколько ему нужно , чтобы до поры до времени.
Однако это кажется довольно неприятным, поскольку я предполагаю, что это приводит к тому, что источник данных запрашивает одну и ту же информацию дважды (один раз автоматически и один раз из-за reloadDataвызова) при первой загрузке.
Причина, по которой я вообще хочу это сделать, заключается в том, что я хочу сохранить положение прокрутки UITableView- но вплоть до уровня пикселей, а не только до ближайшей строки.
При восстановлении позиции прокрутки (с помощью scrollRectToVisible:animated:) мне нужно, чтобы в табличном представлении уже было достаточно данных, иначе scrollRectToVisible:animated:вызов метода ничего не делает (что происходит, если вы размещаете вызов самостоятельно в любом из viewDidLoad, viewWillAppearили viewDidAppear).
