Est-il un moyen de savoir si un UITableView
a fini de poser pour des données à partir de sa source de données?
Aucun des viewDidLoad
/viewWillAppear
/viewDidAppear
méthodes de l'associé-vue-contrôleur (UITableViewController
) sont d'utilisation ici, car ils ont tous le feu trop tôt. Aucun d'entre eux (entièrement à juste titre) la garantie que les requêtes à la source de données ont fini pour le moment (par exemple, jusqu'à ce que l'affichage défile à l'écran).
Une solution de contournement que j'ai trouvé est d'appeler reloadData
en viewDidAppear
, depuis, lors de l' reloadData
rendements, la vue de la table est la garantie d'avoir fini d'interroger la source de données comme beaucoup comme il se doit pour le moment.
Toutefois, cela semble plutôt méchant, comme je suppose qu'il est à l'origine de la source de données afin de fournir les mêmes informations deux fois (une fois automatiquement, et une fois à cause de l' reloadData
appel) lorsqu'il est chargé pour la première fois.
La raison pour laquelle je veux faire ce que je veux préserver la position de défilement de l' UITableView
- mais jusqu'au niveau du pixel, pas seulement la plus proche de la ligne.
Lors de la restauration de la position de défilement (à l'aide d' scrollRectToVisible:animated:
), j'ai besoin de la vue de la table de déjà disposer de suffisamment de données, ou bien l' scrollRectToVisible:animated:
appel de la méthode ne fait rien (c'est ce qui arrive si vous placez l'appel sur son propre dans l'une quelconque des viewDidLoad
, viewWillAppear
ou viewDidAppear
).
Merci d'avance pour votre aide!