Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
aply
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 40
#1

Дозагрузка данных в UITableView при скролле - Objective-C

06.05.2014, 11:50. Просмотров 1791. Ответов 3
Метки нет (Все метки)

С веб-сервиса загружаю порцию данных, отображаю их на UITableViewController.
Как после прокрутки до последней записи загрузить еще одну порцию данных и отобразить их в этой же таблице?

Не могу понять, какой метод используется при прокрутке таблицы и проверки её текущего состояния.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2014, 11:50     Дозагрузка данных в UITableView при скролле
Посмотрите здесь:
Исчезает разделитель при скролле UITableView Objective-C
Objective-C Как при дозагрузке данных показать UIActivityIndicatorView внизу UITableView?
UITableView Section Objective-C
Objective-C UITableView - footer не уходит за экран
Как наполнять UITableView ячейками разной высоты? Objective-C
Как сделать асинхронную загрузку картинок в UITableView не останавливая главный поток? Objective-C
C# MVC Асинхронная подгрузка данных при скролле страницы
Особенности при работе с UITableView
Дозагрузка файла после потери соединения при передачи файла по средствам сокета. (Delphi) Delphi
JavaScript Фиксированное меню при скролле
Прокуртка блока при скролле JavaScript
Смена background'a при скролле PHP БД

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
06.05.2014, 14:08     Дозагрузка данных в UITableView при скролле #2
Я обычно делаю следующим образом (фрагмент для collectionView, но не суть важно):

Objective-C
1
2
3
4
5
6
7
8
9
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
...
     if (indexPath.row == ([self.items count] - 1))
     {
            // инициируем загрузку следующей порции
     }
...
}
aply
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 40
06.05.2014, 15:35  [ТС]     Дозагрузка данных в UITableView при скролле #3
Это аналог метода (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)indexPath ?

Но ведь тогда новая порция будет сразу грузиться, а не тогда, когда пользователь достигнет конца таблицы.
Как я понимаю, все ячейки таблицы строятся сразу и потом только отображаются. Или что-то путаю?

Я нашел способ подобный:
Objective-C
1
2
3
4
5
6
7
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"indexPath = %d",indexPath.row);
    if (indexPath.row==self.items.count-1) {
        [self loadMoreItems];
    }
}
Добавлено через 10 минут
А нет, перепроверил, Вы правы, можно в tableView: cellForRowAtIndexPath:
Он вызывается только когда ячейка появляется на экране.

В принципе, без разницы, наверно, в котором их этих методов вызывать подгрузку новой порции, да?
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
07.05.2014, 07:26     Дозагрузка данных в UITableView при скролле #4
aply, willDisplayCell лучше, ибо cellForRowAtIndexPath все же создание.
Поведение вызова метода для создания ячеек - внутренности iOS. Не стоит расчитывать на:
Цитата Сообщение от aply Посмотреть сообщение
Он вызывается только когда ячейка появляется на экране.
Yandex
Объявления
07.05.2014, 07:26     Дозагрузка данных в UITableView при скролле
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru