如何准确地检测表格何时滚动到最底部?

时间:2015-11-19 23:24:00

标签: ios uitableview

我目前有这段代码来检测用户何时到达数据列表中的最后一个元素

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath)

    if (indexPath.row == list.count) {
        self.getMoreData()
    }       
    return cell
}

只要我不离开视图,它就能很好地工作。如果我离开视图并使用后退操作返回到该视图,则会执行此方法,直到达到list.count - X,其中X是屏幕中可见的数量。

一个例子:如果我有18个项目,这个方法在导航回列表时会在iPhone 6+上运行到11个。

这会导致我的逻辑检测到最后一项失败。我不知道发生了什么:(

2 个答案:

答案 0 :(得分:0)

替换"索引"使用" indexPath.row"。

答案 1 :(得分:0)

func scrollViewDidScroll(scrollView: UIScrollView!) {
    if(scrollView.contentSize.height - scrollView.contentOffset.y =< scrollView.frame.size.height) {
        // bottom
    }
}