PFQueryTableViewController无限滚动快速

时间:2015-12-24 09:08:09

标签: ios swift parse-platform swift2 infinite-scroll

所以我试图实现的基本上是使用PFQueryTableViewController无限滚动。到目前为止,我已将paginationEnabled设置为false,因为我想要隐藏"显示更多"出现的细胞。我还设置了每个要加载的帖子数量" page"是10。

self.paginationEnabled = false
self.objectsPerPage = 10

现在进行无限滚动。我已经设置了以下功能

override func scrollViewDidScroll(scrollView: UIScrollView) {
    if (scrollView.contentSize.height - scrollView.contentOffset.y < (self.view.bounds.size.height)) {
        if !self.loading {
            self.loadNextPage()
        }
    }
}

问题是当它到达末尾(最后一个数据库行)时,它只是循环前面的tableView单元格。我需要一种方法来检查是否有新的数据库行来获取。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我建议你一个想法:

您的objectsPerPag = 10。但是当你查询时你会查询11.如果你实际查询返回11个对象,那么这个结果意味着继续有另一个对象。你会继续加载更多。当您返回时,您将删除此结果查询的最后一个对象,您将获得所需的10个项目。

希望我的想法可以帮到你!

答案 1 :(得分:0)

好的,我这样做的方式是我将paginationEnabled设置为true而不是false。

self.paginationEnabled = true

然后我跟进了以下功能

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if indexPath.row + 1 > self.objects?.count {
        return 0
    }
    let height = super.tableView(tableView, heightForRowAtIndexPath: indexPath)
    return height
}

这样做是为了检查“加载更多”单元格。如果有10个对象,那么第11个将是“加载更多”单元格。因此indexPath.row + 1。然后它将其高度设置为0,隐藏它。