채팅 응용 프로그램을 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를 다시로드하기 전에 현재 스크롤 위치를 가져옵니다. 이 속성/값은 행이 모두 같은 높이인지 아닌지에 따라 달라 지므로 두 가지 방법이 있습니다. tableView를 다시로드 한 후. 여전히 범위 내에있는 한 해당 위치로 다시 스크롤하십시오. [스크롤 위치 가져 오기] (http://stackoverflow.com/questions/2795900/how-can-i-get-the-uitableview-scroll-position-so-i-can- save-it)를 참조하십시오. – Jay