UITableView — как увеличить кеш ячеек?

Доброе время суток! В общем, есть приложение с UITableView и там проблема такая, что таблица видит только те ячейки, которые влезают на экран, + 2-3, и при скролле она остальные удаляет из памяти, возможно увеличить размер, скажем, до 30 ячеек?

Спасибо за внимание!
  • Вопрос задан
  • 2557 просмотров
Пригласить эксперта
Ответы на вопрос 3
ManWithBear
@ManWithBear
Swift Adept, Prague
Почему бы не хранить всю информацию, где-нибудь отдельно?

И подробнее можно: для чего вам это, откуда берется содержимое ячеек и тд. ?
Ответ написан
Flanker_4
@Flanker_4
Вы путаете причину и следствие из-за отсутсвия понимания Работы table view.

Это не список, как Вам может показаться, это скорей барабан. Ячейка которая уходит вверх, за пределы области видимости, тут же телепортируется вниз и выезжает от туда(как буд-то вы мешаете колоду карт) По этому то создание и заполнение ячейки в дата соурсе такое "странное". хотя в последних версиях эту сложность скрыли за сахарком. И это нельзя поменять в UITableView, хотя....

Ну так вот, возвращаясь к Вашей проблеме: Вам не нужно увеличивать кэш или разводить костер вокруг ячеек uitableview - это путь в никуда.
Вам просто нужно отделить котлеты от мух.
завести объект или словарь (как предлагает @ManWithBear), который будет описывать состояние ячейки. так называемую модель. Пример: для ячейки с тремя чекбоксами это будет объект с тремя булевскими свойствами.
Далее, при проклацывании любого из чекбоксов изменять соотвествующее свойство у обьекта (запоминать изменение). А при отображении ячейки вытаскивать это булевское значение и ставить переключатели в нужное значение. И Вы не поверите, но календарь в ios работает именно так, только модель там в coredata'овском ларчике.
Ответ написан
Комментировать
morozovdenis
@morozovdenis
поддерживаю двух предыдущих отвечающих

<начало плохого совета>
но если уж хотите создать физически столько ячеек сколько вообще может быть в вашей таблице, то тогда каждой ячейке присваивайте уникальный reuseIdentifier.
<конец плохого совета>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы