Tengo un UITableView normal con 4 filas, cada una con una altura de 50. Cuando presiono la cuarta fila, inserto una quinta fila con una altura de 80 utilizando UITableViewRowAnimationTop. Hasta aquí todo bien.La animación se ve incómoda al eliminar una celda cuya altura es mayor que otras celdas
Quiero eliminar la quinta fila cuando se vuelve a presionar la cuarta fila. Pero cuando borro la fila usando UITableViewRowAnimationTop (o cualquier otro estilo de animación para el caso), la animación se ve muy incómoda: la animación comienza pero la celda desaparece abruptamente antes de que la animación se complete. (Esto solo es aparente cuando usa celdas que tienen un color de fondo. Puede ver que la mitad inferior de la celda desaparece repentinamente en lugar de desaparecer debajo de la celda de arriba).
El código es algo como esto:
[self.tableview beginupdates];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
[self.tableview endupdates];
Las alturas de fila son proporcionadas por el método tableView:heightForRowAtIndexPath:
.
Este problema no ocurre cuando todas las filas tienen la misma altura o cuando la fila que se elimina es más corta que las otras filas.
Creo que una solución es cambiar la altura de la quinta celda a 50 antes de eliminarlo, pero yo prefiero no hacer that.Please ayudar a
Aquí estamos en 2017 y este problema aún persiste en tableWiews. 'Middle' de hecho anima el contenido mucho más sensatamente que' Top'. – DanBlakemore