Будь-яку проблему з UITableView
продуктивністю прокрутки можна вирішити, використовуючи методи, вже описані в інших відповідях. Однак багато разів млява продуктивність спричиняється чимось по суті помилковим або повторюваним.
Той факт, що UITableView
клітини використовуються повторно, і той факт, що кожна клітина може потребувати власного зображення - разом ускладнює рішення. З того, як це вирішується загальним чином, тут я узагальнюю те, про що слід подбати:
- Завантажити дані у джерело даних - з REST / бази даних. Цей крок слід робити у фоновому режимі, з часом використовуючи dispatch_async разом із чергою GCD.
- Створювати та ініціалізувати відповідні об'єкти моделі даних та поміщати їх у масив
[tableView reloaddata]
- Внутрішній
cellForRowAtIndexPath
код включає код, який встановлюватиме дані (текст) із правильного об’єкта моделі даних масиву.
- Тепер зображення також можуть бути у формі URL-адреси, тому цей крок може бути трохи химерним через повторне використання комірок, виконане за допомогою подання таблиці. Суть справи полягає в тому, щоб ще раз завантажити зображення з кешу / URL-адреси пристрою за допомогою асинхронної черги, а потім встановити його для виправлення cell.image (незалежно від властивості вашого зображення комірки).
Щоб уникнути проблем, зверніться до цього підручника про ліниве завантаження зображень у поданні таблиці.