PFQueryTableViewController 无限滚动 swift
PFQueryTableViewController infinite-scroll swift
所以我想要实现的基本上是使用 PFQueryTableViewController
无限滚动。到目前为止,我已将 paginationEnabled
设置为 false,因为我想隐藏出现的 "Show more" 单元格。而且我还设置了每个 "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 单元格。我需要一种方法来检查是否有新的数据库行要获取。有什么想法吗?
我给你一个建议:
你的objectsPerPag = 10
。但是当你查询的时候你会查询11个。如果你实际查询return11个对象那么这个结果意味着继续有另一个对象。您将继续加载更多。当您 return 您将删除此结果查询的最后一个对象时,您将根据需要获得 10 个项目。
希望我的想法能帮到你!
好的,我这样做的方法是将 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
}
它的作用是检查 "Load more" 单元格。如果有 10 个对象,那么第 11 个将是 "Load more" 单元格。因此indexPath.row + 1
。然后它将其高度设置为 0 以隐藏它。
所以我想要实现的基本上是使用 PFQueryTableViewController
无限滚动。到目前为止,我已将 paginationEnabled
设置为 false,因为我想隐藏出现的 "Show more" 单元格。而且我还设置了每个 "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 单元格。我需要一种方法来检查是否有新的数据库行要获取。有什么想法吗?
我给你一个建议:
你的objectsPerPag = 10
。但是当你查询的时候你会查询11个。如果你实际查询return11个对象那么这个结果意味着继续有另一个对象。您将继续加载更多。当您 return 您将删除此结果查询的最后一个对象时,您将根据需要获得 10 个项目。
希望我的想法能帮到你!
好的,我这样做的方法是将 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
}
它的作用是检查 "Load more" 单元格。如果有 10 个对象,那么第 11 个将是 "Load more" 单元格。因此indexPath.row + 1
。然后它将其高度设置为 0 以隐藏它。