我想分页我的表格视图数据,所以我尝试使用下面的代码使用 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()
}
}
}
非常感谢任何更好的想法