มีวิธีใดบ้างที่จะทราบได้ว่าเมื่อการUITableView
ขอข้อมูลจากแหล่งข้อมูลเสร็จสิ้นแล้วหรือไม่?
ไม่มีการใช้viewDidLoad
/ viewWillAppear
/ viewDidAppear
method ของตัวควบคุมมุมมองที่เกี่ยวข้อง ( UITableViewController
) ที่นี่เนื่องจากทั้งหมดเริ่มทำงานเร็วเกินไป ไม่มีข้อใดเลย (อย่างที่เข้าใจได้ทั้งหมด) รับประกันได้ว่าการสืบค้นไปยังแหล่งข้อมูลเสร็จสิ้นในขณะนี้ (เช่นจนกว่าจะเลื่อนมุมมอง)
วิธีแก้ปัญหาอย่างหนึ่งที่ฉันพบคือการโทรreloadData
เข้าviewDidAppear
เนื่องจากเมื่อreloadData
ส่งคืนมุมมองตารางจะได้รับการรับประกันว่าจะค้นหาแหล่งข้อมูลเสร็จสิ้นแล้วเท่าที่จำเป็นในขณะนี้
อย่างไรก็ตามสิ่งนี้ดูเหมือนจะค่อนข้างน่ารังเกียจเนื่องจากฉันคิดว่ามันทำให้แหล่งข้อมูลถูกขอข้อมูลเดียวกันสองครั้ง (หนึ่งครั้งโดยอัตโนมัติและหนึ่งครั้งเนื่องจากการreloadData
โทร) เมื่อโหลดครั้งแรก
เหตุผลที่ฉันต้องการทำเลยก็คือฉันต้องการรักษาตำแหน่งการเลื่อนของUITableView
- แต่ลงไปที่ระดับพิกเซลไม่ใช่แค่แถวที่ใกล้ที่สุด
เมื่อคืนเลื่อนตำแหน่ง (ใช้scrollRectToVisible:animated:
) ผมต้องดูตารางที่จะมีข้อมูลที่เพียงพอในนั้นหรืออื่น ๆscrollRectToVisible:animated:
เรียกวิธีการไม่ทำอะไรเลย (ซึ่งเป็นสิ่งที่เกิดขึ้นถ้าคุณวางสายของตัวเองในการใด ๆviewDidLoad
, viewWillAppear
หรือviewDidAppear
)