Любая проблема с UITableView
производительностью прокрутки может быть решена с использованием методов, уже описанных в других ответах. Однако во многих случаях вялое исполнение вызвано чем-то ошибочным или повторяющимся.
Тот факт, что UITableView
повторно использует ячейки, и тот факт, что каждой ячейке может потребоваться свое собственное изображение - вместе делает решение немного сложным. Из того, как это решается в общем виде, здесь я суммирую вещи, о которых нужно позаботиться:
- Загрузка данных в источник данных - из REST / базы данных. Этот шаг должен быть выполнен в фоновом режиме, в конце концов, используя dispatch_async вместе с очередью GCD.
- Создание и инициализация соответствующих объектов модели данных и помещение их в массив
[tableView reloaddata]
- Внутри
cellForRowAtIndexPath
, включите код, который будет устанавливать данные (текст) из правильного объекта модели данных массива.
- Теперь изображения могут быть также в форме URL, поэтому этот шаг может быть немного странным из-за повторного использования ячеек в табличном представлении. Суть в том, чтобы снова загрузить изображение из кэша / URL-адреса устройства с помощью асинхронной очереди, а затем установить для него правильное значение cell.image (независимо от того, какое свойство у вашего изображения ячейки).
Чтобы избежать проблем, обратитесь к этому уроку о отложенной загрузке изображений в табличном представлении.