即時消息建立與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()
}
}
}
}
首先,刪除DispatchQueue,因爲它不需要。其次,在重新加載tableView之前,獲取它當前的滾動位置。該屬性/值將根據行的高度是否相同而不同,因此有兩種方法可以完成。重新加載tableView之後。回滾到那個位置,只要它仍在範圍內。請參閱[獲取滾動位置](http://stackoverflow.com/questions/2795900/how-can-i-get-the-uitableview-scroll-position-so-i-can-save-it) – Jay