到达最后一个可见单元格

时间:2017-12-02 13:09:19

标签: ios swift uitableview pagination

我想分页我的表格视图数据,所以我尝试使用下面的代码使用 willDisplay单元格方法,以防用户到达最后一个单元格,应用程序将从API请求更多数据。

override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {

        if indexPath.row == (self.dataArray.count - 1) {
            print("last cell : \(indexPath.row)")
            loadmoredata()
        }

    }

当加载视图时,我的应用程序将点击API并在每页上加载10条记录并在表格视图上显示结果(为了澄清我的表格视图单元格高度为200,设备屏幕最多显示3个单元格),问题是当加载第一个数据补丁时,我的应用程序将打印最后一个单元格:9 ,然后我甚至滚动并显示最后一个单元格!所以我对这个方法感到很困惑,因为当我滚动并显示最后一个单元格时,它应该被触发。

更新:

检查完qusetion后 以下代码正常工作,只检测最后一个可见的单元格,但当用户滚动到顶部时,它会向tableview添加一些滚动延迟

func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {

    //Bottom Refresh

    if scrollView == tableView{

        if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height)
        {

          loadmoredata()  
        }
    }
}

非常感谢任何更好的想法

0 个答案:

没有答案