一次加载 10 个单元格行 - 快速

Posted

技术标签:

【中文标题】一次加载 10 个单元格行 - 快速【英文标题】:Load 10 cell rows at a time - swift 【发布时间】:2016-11-15 16:31:22 【问题描述】:

我目前有一个包含很多帖子的 firebase 数据库。帖子显示在自定义单元格中的 UITableViewController 中。

问题在于它会一次加载所有单元格 - 当有更多帖子出现时,这可能需要很长时间。

如何让它一次只加载 10 个帖子,并在滚动到底部时再加载 10 个?

这就是我获取帖子的方式:

func startObersvingDB() 
        FIRDatabase.database().reference().child("feed-items").observeEventType(.Value, withBlock:  (snapshot: FIRDataSnapshot) in
            var newUpdates = [Sweet]()



            for update in snapshot.children 
                let updateObject = Sweet(snapshot: update as! FIRDataSnapshot)
                newUpdates.append(updateObject)

            

            self.updates = newUpdates.reverse()
            self.tableView.reloadData()


        )  (error: NSError) in
            print(error.description)
        
    

【问题讨论】:

【参考方案1】:

考虑这个让分页与 Firebase 一起工作的示例: Swift ios: Firebase Paging

要在滚动时加载更多内容,请在您的视图控制器 (Swift3) 中尝试此操作:

extension MyViewController:UIScrollViewDelegate 
func scrollViewDidScroll(_ scrollView: UIScrollView) 
    let offset = scrollView.contentOffset.y
    if offset > self.tableView.contentSize.height - 50  //This value is adjustable
        functionToPullMoreDatabaseItems()
    


【讨论】:

这可能是一个非常愚蠢的问题,但是 contentsize 的高度与加载更多帖子有什么关系? :) 当 contentOffset.y 等于 contentSize.height 时,即滚动到底部。减去 50 允许您调用该函数以在到达底部之前从数据库中加载更多数据,以便在您到达它时数据就在那里。

以上是关于一次加载 10 个单元格行 - 快速的主要内容,如果未能解决你的问题,请参考以下文章

防止在第一次单击后检查最后一个单元格行,反之亦然&将选定的行添加/删除到数组

elementuitable左右固定如何调整每个单元格行高

如何在 OpenOffice Calc 宏中获得合并的单元格行/列跨度

故事板中的自定义单元格行高度设置没有响应

在选定的单元格行返回 TableView

element ui table左右固定如何调整每个单元格行高