Gibt es eine Möglichkeit herauszufinden, wann a UITableView
die Daten von seiner Datenquelle abgefragt hat?
Keine der viewDidLoad
/ viewWillAppear
/ viewDidAppear
Methoden des zugehörigen View Controllers ( UITableViewController
) ist hier von Nutzen, da sie alle zu früh ausgelöst werden. Keiner von ihnen garantiert (völlig verständlich), dass Abfragen an die Datenquelle vorerst abgeschlossen sind (z. B. bis die Ansicht gescrollt wird).
Eine Abhilfe , die ich gefunden habe , ist zu nennen reloadData
in viewDidAppear
, da bei der reloadData
Rückkehr, die Tabellenansicht ist garantiert beendet zu haben , die Datenquelle so viel abfragt , wie es für den Augenblick braucht.
Dies scheint jedoch ziemlich unangenehm zu sein, da ich davon ausgehe, dass die Datenquelle reloadData
beim ersten Laden zweimal (einmal automatisch und einmal aufgrund des Aufrufs) nach denselben Informationen gefragt wird.
Der Grund, warum ich dies überhaupt tun möchte, ist, dass ich die Bildlaufposition von UITableView
- beibehalten möchte, aber bis auf die Pixelebene, nicht nur bis zur nächsten Zeile.
Wenn die Bildlaufposition Wiederherstellung (mit scrollRectToVisible:animated:
), muß ich die Tabellenansicht bereits genügend Daten darin hat, oder aber der scrollRectToVisible:animated:
Methodenaufruf tut nichts (was was ist, wenn Sie den Anruf auf seinem eigenen in einem Platz geschieht , ist viewDidLoad
, viewWillAppear
oder viewDidAppear
).