IOS快速滚动在底部是发射超过50次

时间:2016-12-10 19:49:46

标签: ios swift uitableview swift3

当用户接近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,但所有这些都很有用。

1 个答案:

答案 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")
            }
        }