¿Hay alguna forma de averiguar cuándo UITableView
ha terminado de solicitar datos de su fuente de datos?
Ninguno de los viewDidLoad
/ viewWillAppear
/ viewDidAppear
métodos del controlador de vista asociado (UITableViewController
) es útil aquí, ya que todos se activan demasiado pronto. Ninguno de ellos (enteramente comprensible) garantiza que las consultas a la fuente de datos hayan finalizado por el momento (por ejemplo, hasta que se desplace la vista).
Una solución que he encontrado es que llamar reloadData
en viewDidAppear
, ya que, cuando reloadData
regresa, la vista de tabla está garantizado de haber terminado la consulta de la fuente de datos tanto como lo necesita por el momento.
Sin embargo, esto parece bastante desagradable, ya que supongo que está provocando que se solicite la misma información a la fuente de datos dos veces (una vez automáticamente y otra debido a la reloadData
llamada) cuando se carga por primera vez.
La razón por la que quiero hacer esto es que quiero preservar la posición de desplazamiento del UITableView
, pero hasta el nivel de píxel, no solo hasta la fila más cercana.
Al restaurar la posición de desplazamiento (usando scrollRectToVisible:animated:
), necesito que la vista de tabla ya tenga suficientes datos, o de lo contrario, la scrollRectToVisible:animated:
llamada al método no hace nada (que es lo que sucede si coloca la llamada por sí sola en cualquiera de viewDidLoad
, viewWillAppear
o viewDidAppear
).