Как сказать UiableView для предварительной загрузки всех строк?
-
05-10-2019 - |
Вопрос
Есть ли способ сказать UiableView для предварительной загрузки всех строк?
Таблёс должен показывать несколько комментариев (до 80 комментариев).
Итак, мой комментарий использует сеттер для адаптации ячейки к определенному комментарию.
-(void)setComment:(Comment *)newComment {
if (newComment != comment) {
[comment release];
comment = [newComment retain];
/*
* set the cells view variables here
*/
}
}
Этот конкретный сеттер принимает довольно кучу обработки ресурсов, а прокрутка становится вроде вроде.
Я использую определенный комментарий Reuseiledifier вместо статического совокупности при вызове
dequeueReusableCellWithIdentifier:
Чтобы убедиться, что «новичок» равняется старому «комментарию».
И на самом деле это делает отлично работать при прокрутке на клетки, которые уже были загружены.
Но при первом прокрутите комментарии, он все еще лагает как ад.
Что приводит меня к своему вопросу:
Есть ли способ сказать таблицу для предварительной загрузки всех клеток? (который я сомневаюсь)
или
Должен ли я реализовать свой собственный кэш вместо того, чтобы полагаться на «DeceeueUsableCellWithidentifier:»?
Решение
Имейте в виду, что ваш комментарий Comment Reuseiledifier может быть то, что вызывает все, что нужно медленно (или, по крайней мере, не помогать). Причина, по которой мы используем ReuseIdifier для UiableViewCells, заключается в том, что если вы попытаетесь выделить новую ячейку каждый раз, когда вам нужен один, это не так, как если бы вы могли просто повторно использовать один, который был уже сделан.
Я бы порекомендовал предварительно вычисление ваших комментариев, чтобы вы могли просто установить свойства ваших ячеек и повторно использовать ячейки после прокрутки таблицы.
Другие советы
Нет, вы должны предварительно загрузить ваши данные в свой dataSource
. Отказ Просто поместите все, что вам нужно в массиве и заполнить клетки таблицы от этого массива предварительно загруженных объектов.