Обнаружение проблемы, если UITableView прокручивается вниз - PullRequest
9 голосов
/ 28 июля 2011

Я использую следующий код, чтобы определить, достиг ли я дна UITableView

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
    if(self.tableView.contentOffset.y >= (self.tableView.contentSize.height - self.tableView.bounds.size.height)) {
        NSLog(@"bottom!");
        NSLog(@"%@", [self getLastMessageID]);
        [self getMoreStuff:[self getLastMessageID]];
    }

}

Это работает нормально, но единственная проблема - когда пользователь опускает представление таблицы вниз (например,потяните, чтобы обновить) код срабатывает.Как я могу справиться с этим?

Ответы [ 3 ]

19 голосов
/ 28 июля 2011

попробуйте так

    if(self.tableview.contentOffset.y<0){
              //it means table view is pulled down like refresh
              return;
            }
else if(self.tableView.contentOffset.y >= (self.tableView.contentSize.height - self.tableView.bounds.size.height)) {
        NSLog(@"bottom!");
        NSLog(@"%@", [self getLastMessageID]);
        [self getMoreStuff:[self getLastMessageID]];
    }
0 голосов
/ 28 июля 2011

Попробуйте использовать другой алгоритм, чтобы обнаружить, что вы достигли нижней части табличного представления. Например, посмотрите на cellForRowAtIndexPath: (NSIndexPath *) indexPath до indexPath текущей ячейки, и если число строк в IndexPath равно количеству строк в вашем массиве данных, то вы достигли дна.

0 голосов
/ 28 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...