私はFirebaseを使ってチャットアプリケーションをビルドしていますが、reloadData()がスクロールした後に問題があります。スクロールを無効にする
どうすれば無効にできますか?
UIScrollViewのクラスには、この私のコード
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をリロードする前に、現在のスクロール位置を取得します。そのプロパティ/値は、行がすべて同じ高さかどうかによって異なります。そのため、2つの方法があります。 tableViewを再読み込みした後。それが範囲内にある限り、その位置にスクロールバックします。 [スクロール位置の取得](http://stackoverflow.com/questions/2795900/how-can-i-get-the-uitableview-scroll-position-so-i-can-save-it)を参照してください。 – Jay