Прокрутка для загрузки большего количества ячеек в UITableView, как в приложении Amazon - PullRequest
2 голосов
/ 06 января 2011

Я пытаюсь создать UITableView, где автоматически загружается больше строк, когда я прокручиваю до конца списка. Обычно это похоже на функцию поиска в приложении Amazon для iPhone. Он загружает около 20 строк одновременно, и когда я прокручиваю до конца первые 20, то следующие 20 автоматически загружаются. После загрузки он остается в памяти. Я не рассматриваю вариант, когда в последнем ряду написано «Загрузить больше элементов», как в приложении App Store.

Вот то, чего я пытаюсь достичь: моему текущему потоку приложений требуется около 8-15 секунд для загрузки UITableView (где-то от 0 до 50 элементов в списке). Это займет около 8 секунд, даже если есть только 1 строка. Я хотел бы, чтобы этот процесс появился быстрее. Мой экран может отображать максимум 7 строк в любой момент времени, поэтому я думаю, смогу ли я сделать эту загрузку 8-10 строк за раз и быть в состоянии достичь этого, скажем, через 3-4 секунды, а затем в другой элементы могут загружаться, когда пользователь прокручивает весь путь вниз. Таким образом, первая загрузка таблицы будет в два раза быстрее, чем сейчас.

Я смотрю на «Pull to Refresh», как приложение Tweetie2, и смотрю на код Three20 на github, но не очень уверен, как реализовать его как приложение Amazon.

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

Любая помощь будет принята с благодарностью.

1 Ответ

18 голосов
/ 06 января 2011

Рассматривали ли вы использование метода UITableViewDelegate:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

Если вы держите в курсе индекс последней загруженной ячейки и если вы приблизитесь к прокрутке этой ячейки, запустите асинхронные запросы для загрузки большего количества строк.

...