当用户接近TableView的底部时,我正在尝试经典加载更多数据。我已经看过这里的一些例子,并已经实现了其中一个但是这次发射超过50次而不是一次,我不明白为什么会发生这是我的代码
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "myTable", for: indexPath) as! HomePage
if indexPath.row == self.Posts.count - 4 {
LoadMore()
print("Load More")
}
}
设置此代码,以便当用户到达第4行的最后一行以加载更多数据时。 LoadMore是一个HTTP请求,因为我在ViewDid Load中使用它来获取初始数据。当我查看LoadMore在tableView内部触发的次数是惊人的。该代码的工作原理是它首先在用户处于第4行的最后一行时启动,但直到大约第55或第60次才会停止。 Posts是一个String数组,这些数据来自Json,但所有这些都很有用。
答案 0 :(得分:1)
使用willDisplayCell
方法实施Pagination
:
//Call Web Service after end of Page
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == self.Posts.count - 4 {
LoadMore()
print("Load More")
}
}