一次加载 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 个单元格行 - 快速的主要内容,如果未能解决你的问题,请参考以下文章
防止在第一次单击后检查最后一个单元格行,反之亦然&将选定的行添加/删除到数组