我正在使用解析服务器。
我有 # 个社交媒体帖子,其中包含我添加到 tableview 的数据。一切都正确加载。但是,我有大量的帖子(50)。
我只想将 tableview 限制为最多 10 个,我通过 query.limit 成功使用了它。但是,一旦用户滚动通过该系列的最后 10 个,我想在 tableView 上加载下一个 10。
此外,我想删除该系列的前 10 个,因为这会占用我用户手机上的太多数据。
我正在使用解析服务器。
我有 # 个社交媒体帖子,其中包含我添加到 tableview 的数据。一切都正确加载。但是,我有大量的帖子(50)。
我只想将 tableview 限制为最多 10 个,我通过 query.limit 成功使用了它。但是,一旦用户滚动通过该系列的最后 10 个,我想在 tableView 上加载下一个 10。
此外,我想删除该系列的前 10 个,因为这会占用我用户手机上的太多数据。
我建议不要删除 UITableView 中的当前项目,因为这是一种不正常的设计模式,可能会使您的用户感到困惑。UITableViews 和 UICollectionViews 旨在重用单元格以提高性能。
这是我将如何处理分页。此示例使用 UICollecitonView,但您应该能够对您的 tableview 应用相同的逻辑
var skip = 0
var loading = false
var fullyLoaded = false
var posts = [Post]()
func queryPosts(){
guard !self.fullyLoaded else{return}
guard !self.loading else{return}
self.loading = true
let query = Post.query()
query?.limit = 10
query?.skip = self.skip
query?.findObjectsInBackground(block:{
(posts, error) in
for post in posts{
self.posts.append(item)
}
self.skip = self.posts.count
if posts.count == 0{self.fullyLoaded = true}
self.loading = false
self.collectionView.reloadData()
})
}
func collectionView(_ collectionView:UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{
let cell = collectionView.dequeueReusableCell(indexPath: indexPath) as PostCell
cell.loadPost(self.posts[indexPath.item])
if self.posts.count == indexPath.item - 1{
self.queryPosts()
}
return cell
}