Sono stato sbattere la testa su questo problema per ore, ma ogni volta che provo qualcosa di simile:Perché insertRowsAtIndexPath fa sempre in modo che TableView scorra verso l'alto?
self.dataArray.append(newCellObj)
e poi faccio questo:
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
self.tableView.endUpdates()
L'UITableView farà scorrere automaticamente la parte superiore della pagina.
anche se cerco:
self.tableView.scrollEnabled = false
self.tableView.beginUpdates()
self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)
self.tableView.endUpdates()
L'UITableView sarà ancora scorrere verso l'alto anche con lo scorrimento completamente disattivato. Che cosa fa sì che ScrollView scorra in cima dopo che insertRowsAtIndexPaths
viene chiamato?
L'unica soluzione che ho per questo problema è quello di utilizzare questo:
self.tableView.reloadData()
invece. Se uso reloadData invece che va bene, ma poi perdo la bella animazione che mi piacerebbe davvero mantenere.
devo anche self.tableView.scrollsToTop = false
e ho provato molte altre configurazioni come quella che potrebbe disabilitare lo scorrimento in qualche modo, ma, c'è qualcosa che prevale questo dopo insertRowsAtIndexPaths
Penso che potresti avere qualche altro codice che reagisce male qui. Hai ragione che non dovrebbe scorrere verso l'alto. Hai provato a farlo senza essere tra gli aggiornamenti di inizio/fine? C'è qualche altro codice che * potrebbe * essere rilevante? –
@RyanPoolos Grazie amico, funziona meglio senza gli aggiornamenti di inizio/fine per me. : D –