如何确定用户是否已滚动到UITableView的最后一个单元格/底部?
答案 0 :(得分:28)
UITableView继承自UIScrollView,滚动视图公开了contentOffset
属性(文档here)。
使用此算法来确定contentOffset是否在底部的frame.size.height
范围内。
更新:这里有一个可以满足您需求的公式:
if(tableView.contentOffset.y >= (tableView.contentSize.height - tableView.frame.size.height)) {
//user has scrolled to the bottom
}
答案 1 :(得分:5)
使用NSArray *paths = [tableView indexPathsForVisibleRows];
。然后检查该数组中的最后一个对象是否是最终单元格的indexPath。
答案 2 :(得分:1)
感谢更新的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) {
}