Как определить, прокрутил ли пользователь нижнюю часть UITableView? - PullRequest
11 голосов
/ 01 июля 2010

Как определить, прокрутил ли пользователь последнюю ячейку / нижнюю часть UITableView?

Ответы [ 3 ]

28 голосов
/ 01 июля 2010

UITableView наследуется от UIScrollView, а представление прокрутки предоставляет свойство contentOffset (документация здесь ).

Используйте это с небольшим количеством математики, чтобы определить, находится ли contentOffset в пределах frame.size.height внизу.

Обновление: вот удар по формуле, которая даст вам то, что вы хотите:

if(tableView.contentOffset.y >= (tableView.contentSize.height - tableView.frame.size.height)) {
  //user has scrolled to the bottom
}
5 голосов
/ 01 июля 2010

Используйте NSArray *paths = [tableView indexPathsForVisibleRows];. Затем проверьте, является ли последний объект в этом массиве indexPath для последней ячейки.

Источник: Другой вопрос

1 голос
/ 29 января 2016

Благодаря новым версиям iOS, есть простой способ с функцией willDisplayCell:

func tableView(tableView:UITableView, willDisplayCell cell:UITableViewCell, forRowAtIndexPath indexPath:NSIndexPath) {

       if (indexPath.row >= tableView.numberOfRowsInSection(0)) {

           NSLog("User got to bottom of table")

       } 
}

Обратите внимание, что UICollectionViews имеют похожую функцию:

func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {

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