Bất kỳ vấn đề nào với UITableView
hiệu suất cuộn đều có thể được giải quyết bằng cách sử dụng các kỹ thuật đã được mô tả trong các câu trả lời khác. Tuy nhiên, đôi khi hiệu suất chậm chạp là do một cái gì đó vốn có sai sót hoặc lặp đi lặp lại.
Thực tế là UITableView
sử dụng lại các ô và thực tế là mỗi ô có thể cần hình ảnh riêng của nó - cùng nhau làm cho giải pháp trở nên phức tạp. Từ cách nó được giải quyết theo cách chung, ở đây tôi tóm tắt những điều cần lưu ý:
- Nạp dữ liệu vào nguồn dữ liệu - từ REST / cơ sở dữ liệu. Bước này nên được thực hiện ở chế độ nền, cuối cùng sử dụng Dispatch_async cùng với hàng đợi GCD.
- Tạo và khởi tạo các đối tượng mô hình dữ liệu có liên quan và đưa chúng vào bên trong một mảng
[tableView reloaddata]
- Bên trong
cellForRowAtIndexPath
, bao gồm mã sẽ thiết lập dữ liệu (văn bản) từ đối tượng mô hình dữ liệu chính xác của mảng.
- Bây giờ hình ảnh cũng có thể ở dạng URL, vì vậy bước này có thể hơi kỳ quặc vì việc sử dụng lại ô được thực hiện bởi chế độ xem bảng. Trung tâm của thực tế là tải một lần nữa hình ảnh từ bộ nhớ cache / URL của thiết bị bằng cách sử dụng hàng đợi không đồng bộ, sau đó đặt nó thành đúng cell.image (bất kể thuộc tính hình ảnh ô của bạn là gì).
Để tránh sự cố, hãy tham khảo hướng dẫn này về cách tải hình ảnh trong chế độ xem bảng.