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