iOS 11 UITableView eliminar filas de error de animation

video del error de animation de tableview

Tengo una vista de tabla que expande / contrae sus celdas.

A partir de iOS 11, el tableView comienza a comportarse extrañamente al insert y eliminar filas. El contenidoSize ha cambiado antes de que ocurra el bloque de animation y, en consecuencia, en el video, puede ver un retroceso con errores que ocurre en las celdas que se queuepsan. La animation simplemente se ve mal.

Este código funcionó perfectamente en iOS 10. ¿Alguien sabe qué ha cambiado en el lado de Apple? ¿Es esto un problema conocido?

public func insertingRowsForAccordion(_ indexArray: [IndexPath], selectedRowIndex: Int) { beginUpdates() insertRows(at: indexArray, with: UITableViewRowAnimation.fade) endUpdates() // Scroll to selection after expanding children scrollToRow(at: IndexPath(row: selectedRowIndex, section: 0), at: UITableViewScrollPosition.top, animated: true) } public func removeRowsForAccordion(_ indexArray: [IndexPath]) { beginUpdates() deleteRows(at: indexArray, with: UITableViewRowAnimation.fade) endUpdates() } 

He tenido innumerables problemas con iOS 11 UITableView . Ir a cada UITableView en toda mi aplicación y hacer lo siguiente solucionó todos mis problemas.

Establezca estimatedRowHeight , estimatedSectionHeaderHeight y estimatedSectionFooterHeight a 0.

Fuente: encabezado Floating TableView de iOS 11

¿Resuelves tu problema? En caso afirmativo, ¿cómo? Tuve un problema similar y resolví parcialmente esto usando

self.tableView.estimatedSectionHeaderHeight

con valores no 0 (valores diferentes para la position diferente de la celda en la pantalla), pero esta solución claramente no se ve bien.