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