Có cách nào để biết khi nào a UITableView
đã hoàn tất yêu cầu dữ liệu từ nguồn dữ liệu của nó không?
Không có viewDidLoad
/ viewWillAppear
/ viewDidAppear
phương thức nào của bộ điều khiển chế độ xem được liên kết ( UITableViewController
) được sử dụng ở đây, vì chúng đều hoạt động quá sớm. Không ai trong số họ (hoàn toàn có thể hiểu được) đảm bảo rằng các truy vấn đến nguồn dữ liệu đã kết thúc trong thời gian này (ví dụ: cho đến khi chế độ xem được cuộn).
Một giải pháp mà tôi đã tìm thấy là gọi reloadData
vào viewDidAppear
, vì, khi reloadData
trả về, chế độ xem bảng được đảm bảo đã hoàn thành truy vấn nguồn dữ liệu nhiều như nó cần vào lúc này.
Tuy nhiên, điều này có vẻ khá khó chịu, vì tôi cho rằng nó đang khiến nguồn dữ liệu được yêu cầu cung cấp cùng một thông tin hai lần (một lần tự động và một lần do lệnh reloadData
gọi) khi nó được tải lần đầu tiên.
Lý do tôi muốn làm điều này là tôi muốn giữ nguyên vị trí cuộn của UITableView
- nhưng ngay xuống cấp pixel, không chỉ đến hàng gần nhất.
Khi khôi phục lại vị trí cuộn (sử dụng scrollRectToVisible:animated:
), tôi cần xem bảng để đã có đủ dữ liệu trong nó, hoặc người nào khác scrollRectToVisible:animated:
gọi phương thức không làm gì (đó là những gì sẽ xảy ra nếu bạn đặt cuộc gọi ngày của riêng mình trong bất kỳ viewDidLoad
, viewWillAppear
hoặc viewDidAppear
).