ปัญหาใด ๆ เกี่ยวกับUITableView
ประสิทธิภาพการเลื่อนสามารถแก้ไขได้โดยใช้เทคนิคที่อธิบายไว้แล้วในคำตอบอื่น ๆ อย่างไรก็ตามหลายครั้งที่ประสิทธิภาพการทำงานที่ซบเซาเกิดจากสิ่งที่ผิดพลาดโดยเนื้อแท้หรือซ้ำซาก
ความจริงที่ว่าUITableView
นำเซลล์กลับมาใช้ใหม่และความจริงที่ว่าแต่ละเซลล์อาจต้องการภาพของตัวเองร่วมกันทำให้การแก้ปัญหามีความซับซ้อนเล็กน้อย จากวิธีการแก้ไขโดยทั่วไปฉันสรุปสิ่งที่ควรดูแล:
- โหลดข้อมูลลงในแหล่งข้อมูล - จาก REST / ฐานข้อมูล ขั้นตอนนี้ควรทำในพื้นหลังโดยใช้ dispatch_async ร่วมกับคิว GCD ในที่สุด
- สร้างและเริ่มต้นอ็อบเจ็กต์โมเดลข้อมูลที่เกี่ยวข้องและวางไว้ในอาร์เรย์
[tableView reloaddata]
- ข้างใน
cellForRowAtIndexPath
รวมรหัสที่จะตั้งค่าข้อมูล (ข้อความ) จากวัตถุโมเดลข้อมูลที่ถูกต้องของอาร์เรย์
- ตอนนี้รูปภาพอาจอยู่ในรูปแบบของ URL เช่นกันดังนั้นขั้นตอนนี้อาจดูแปลก ๆ เล็กน้อยเนื่องจากการใช้เซลล์ซ้ำโดยมุมมองตาราง หัวใจสำคัญของความจริงคือการโหลดรูปภาพอีกครั้งจากแคช / URL ของอุปกรณ์โดยใช้คิว async จากนั้นตั้งค่าให้แก้ไข cell.image (คุณสมบัติรูปภาพเซลล์ของคุณคืออะไร)
เพื่อหลีกเลี่ยงปัญหาโปรดดูบทช่วยสอนนี้เกี่ยวกับการโหลดรูปภาพภายในมุมมองตาราง