开发者

How to determine if the user has scrolled to the bottom of the UITableView?

How can I determine if the user has scrolled to th开发者_StackOverflow中文版e last cell/bottom of a UITableView?


UITableView inherits from UIScrollView, and scroll view exposes a contentOffset property (documentation here).

Use this with a bit of math to determine if the contentOffset is within frame.size.height of the bottom.

Update: here's a stab at a formula that will give you what you want:

if(tableView.contentOffset.y >= (tableView.contentSize.height - tableView.frame.size.height)) {
  //user has scrolled to the bottom
}


Use NSArray *paths = [tableView indexPathsForVisibleRows];. Then check if the last object in that array is the indexPath for the final cell.

Source: Another Question


Thanks to newer iOS versions, there's an easy way with the willDisplayCell function:

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

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

           NSLog("User got to bottom of table")

       } 
}

Note that UICollectionViews have a similar function:

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

}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜