Ленивая загрузка в UIScrollView с данными из SQLite - PullRequest
2 голосов
/ 13 января 2012

В своем приложении для iPad я создал сегментированный элемент управления, и один сегмент которого, при нажатии, отображает длинный список (около 300) с изображениями и метками из локальной базы данных SQLite.Это занимает много времени для загрузки и останавливает активность приложения во время загрузки всего этого из базы данных.

Хотя я пока применяю индикатор активности, но это выглядит очень дрянно.Может кто-нибудь сказать мне, как применить Lazy Loading таким образом, чтобы Когда нажата кнопка, чтобы открыть это представление , вместо загрузки всего контента сразу, он выбирает только контент, который первоначально отображался в контенте (около 9 изображений с лейблами).

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Если вы используете UITableView , у вас может быть больше шансов.

A UITableViewCell загружает ячейки по одной за раз (дает вам индекс элемента, который он пытаетсяload), поэтому, если вы используете табличное представление, оно будет загружать только то количество элементов, которое необходимо отобразить.Вы сообщаете ему, сколько элементов, их рост и т. Д.

Он также многократно использует ячейки, что дает гораздо лучшую производительность, чем создание 300 различных представлений в памяти за раз.

UIScrollView не знает о ваших «элементах», поэтому он позволяет помещать в представление столько элементов, сколько вы хотите, а затем добавляет полосу прокрутки.Здесь нет оптимизации для использования памяти или доступа к базе данных.

0 голосов
/ 13 января 2012

Вы должны реализовать пейджинг в списке. Загрузите первые 25 элементов, а затем добавьте кнопку («Следующие 25») в tableFooterView, которая загрузит еще 25 элементов.

...