我正在使用Firebase构建聊天应用程序,我遇到问题是在reloadData()之后滚动顶部。
如何禁用它?
这是我的代码
func retrieveDataFromFirebase(){
FIRDatabase.database().reference().child("share").child("post").observe(.value) { (snapshot:FIRDataSnapshot) in
if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot]{
self.key.removeAll()
self.users.removeAll()
for snap in snapshots{
self.key.append(snap.key)
if let dic = snap.value as? [String:AnyObject]{
let msg = Message()
msg.setValuesForKeys(dic)
self.users.append(msg)
}
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
}
}
答案 0 :(得分:0)
进入UIScrollView类(由UITableView实现),您拥有scrollsToTop
变量。
尝试将其设置为false
。
或者您需要创建一个委托,在重新加载数据时拒绝滚动到顶部。
参考文献: https://developer.apple.com/reference/uikit/uiscrollview https://developer.apple.com/reference/uikit/uiscrollview/1619421-scrollstotop
https://developer.apple.com/reference/uikit/uiscrollviewdelegate/1619378-scrollviewshouldscrolltotop
答案 1 :(得分:0)
尝试将您的tableview滚动到最后一个索引。
emplace_back