Czy istnieje sposób, aby dowiedzieć się, kiedy UITableView
zakończyło się proszenie o dane ze swojego źródła danych?
Żadna z metod viewDidLoad
/ viewWillAppear
/ viewDidAppear
skojarzonego kontrolera widoku ( UITableViewController
) nie jest tutaj przydatna, ponieważ wszystkie uruchamiają się zbyt wcześnie. Żadne z nich (całkowicie zrozumiałe) nie gwarantuje, że zapytania do źródła danych na razie się zakończyły (np. Do przewinięcia widoku).
Jeden obejście znalazłem jest wywołanie reloadData
w viewDidAppear
, ponieważ, gdy reloadData
powróci, widok tabeli jest gwarancją zakończeniu kwerendy źródło danych tyle, ile potrzebuje na razie.
Wydaje się to jednak dość nieprzyjemne, ponieważ zakładam, że powoduje to dwukrotne pytanie źródła danych o te same informacje (raz automatycznie i raz z powodu reloadData
połączenia) podczas pierwszego ładowania.
Powodem, dla którego chcę to w ogóle zrobić, jest to, że chcę zachować pozycję przewijania UITableView
- ale aż do poziomu pikseli, a nie tylko do najbliższego wiersza.
Podczas przywracania pozycję przewijania (za pomocą scrollRectToVisible:animated:
), muszę widoku tabeli do już wystarczające dane w nim, albo też scrollRectToVisible:animated:
wywołanie metody nie robi nic (co jest to, co się dzieje, jeśli nawiązać połączenie na własną rękę w dowolnym viewDidLoad
, viewWillAppear
lub viewDidAppear
).