Saatlerce bu sorun üzerinde başımı beceriyor oldum, ama her zaman böyle bir şey deneyin:insertRowsAtIndexPaths neden her zaman TableView'ın en üste gelmesine neden oluyor?
self.dataArray.append(newCellObj)
ve sonra bunu:
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
self.tableView.endUpdates()
UITableView otomatik için kayar sayfanın üst kısmı.
denemek bile:
self.tableView.scrollEnabled = false
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
self.tableView.endUpdates()
UITableView bile hala tamamen devre dışı kaydırma ile üstüne kayar. ScrollView öğesinin tam olarak insertRowsAtIndexPaths
çağrıldıktan sonra en üste kaydırmasına neden olan nedir?
Bu sorunla ilgili tek çözüm bu kullanmaktır: yerine
self.tableView.reloadData()
. Bunun yerine reloadData kullanırsam, ama tutmak istediğim güzel animasyonu kaybederim.
Ben de self.tableView.scrollsToTop = false
var ve ben bir şekilde kaydırma devre dışı verebilecek böyle birçok yapılandırmaları denedim ama ben OP aynı sorunla karşılaşmış olan insertRowsAtIndexPaths
üzerinde
estimatedRowHeight
daha doğru ayarlamak@RyanPoolos Teşekkürler dostum, benim için başlangıç / bitiş güncellemeleri olmadan daha iyi çalışıyor. : D –