Adakah cara untuk mengetahui kapan a UITableView
selesai meminta data dari sumber datanya?
Tak satu pun dari viewDidLoad
/ viewWillAppear
/ viewDidAppear
metode dari view controller ( UITableViewController
) terkait yang digunakan di sini, karena semuanya diaktifkan terlalu dini. Tak satu pun dari mereka (sepenuhnya dapat dimengerti) menjamin bahwa kueri ke sumber data telah selesai untuk saat ini (misalnya, hingga tampilan di-scroll).
Salah satu solusi yang saya temukan adalah untuk memanggil reloadData
di viewDidAppear
, karena, ketika reloadData
kembali, tampilan tabel yang dijamin selesai query sumber data sebanyak itu perlu untuk saat ini.
Namun, ini tampaknya agak buruk, karena saya berasumsi hal itu menyebabkan sumber data dimintai informasi yang sama dua kali (sekali secara otomatis, dan sekali karena reloadData
panggilan) saat pertama kali dimuat.
Alasan saya ingin melakukan ini semua adalah karena saya ingin mempertahankan posisi gulir UITableView
- tetapi sampai ke tingkat piksel, tidak hanya ke baris terdekat.
Saat memulihkan posisi gulir (menggunakan scrollRectToVisible:animated:
), saya memerlukan tampilan tabel untuk memiliki data yang cukup di dalamnya, atau scrollRectToVisible:animated:
pemanggilan metode tidak melakukan apa pun (yang terjadi jika Anda melakukan panggilan sendiri di salah satu viewDidLoad
, viewWillAppear
atau viewDidAppear
).