我正在使用Instagram风格的应用程序,我可以让用户上传图片和评论/喜欢它们。我的后端是Firebase,我使用的是Swift 2.3。
我遇到了这个问题。目前我正在使用
FirebaseREF.observeEventType(.Value, withBlock: { snapshot in
观察任何新帖子或任何人书签或喜欢帖子。麻烦的是,当我有多个用户登录,并且用户上传/修改帖子时,我的应用上的UItableview将向上或向下滚动,具体取决于是添加还是删除帖子。 (因为它与Firebase实时同步)
所以我的问题是,这是正确的方法吗?我如何实现Instagram / Twitter之类的东西,我下载了一定数量的帖子,我可以实时查看我的屏幕上的帖子的任何变化,当我拉动刷新时,新帖子会被下载?
我不想仅使用Firebase注册单个活动,因为当有人喜欢/为帖子添加书签时,我的帖子不会更新,我必须重新加载tableview以便每次都更新。
我确实有Pull to refresh部分工作。问题是现在我的应用程序响应所有实时事件,并在后端有任何活动时继续滚动/刷新,这会带来真正糟糕的体验。
答案 0 :(得分:0)
你可以得到tableView.visibleCells并找出屏幕顶部的哪一个以及它相对于tableView的偏移量(使用UIView.convertPoint:toView:。更新tableView之后,假设你没有&删除此单元格,您可以使用UITableView.scrollToRowat:animated:滚动到它(确保动画为false)并使用tableView.setContentOffset:animated(继承自UIScrollView)恢复相对于tableView的原始偏移量。