Las celdas de tamaño propio hacen que UITableView salte

Tengo una UITableView, cada celda tiene una image y dos tags, como puede ver en la primera image

introduzca la descripción de la imagen aquí

Por lo tanto, estoy tratando de usar células autodimensionadas y todo es genial, excepto 2 cosas:

1) La primera y la segunda celda no muestran el contenido correctamente, pero después de desplazarme hacia abajo y luego regresar a ellas, todo está bien. Traté de usar [tableview reloadData] en viewDidApper, pero no ayuda. Mire las tags al principio que no caben. Puedes verlo en este video https://www.youtube.com/watch?v=I9DGBl1c5vg

Mire las tags en la primera celda.

2) Es difícil. Estoy desplazando la table y todo está genial, pero el problema sucede cuando selecciono la fila. Me empuja a la vista de detalles, pero cuando presiono "atrás" y return a la vista principal, la vista de tabla salta, así que no return a la fila seleccionada, también si desploop la tabla no se desplaza suavemente, pero salta Aquí están los enlaces para dos videos, el primero muestra que el desplazamiento es sencillo https://www.youtube.com/watch?v=9wAICcZwfO4 si no voy a la vista de detalles, y el segundo muestra el problema de salto https: / /www.youtube.com/watch?v=fRcQ3Za1wDM .

Está absolutamente seguro de que está conectado con las células de tamaño propio, porque si no lo uso, no ocurre nada de este problema. Si necesita un video que muestre la funcionalidad adecuada, dígame.

De acuerdo, resolví ambos problemas.

Pregunta 1

He agregado estas dos líneas

[cell.contentView setNeedsLayout]; [cell.contentView layoutIfNeeded]; 

in - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath antes de la return cell

Pregunta 2

La solución parecía ser muy simple. Solo necesitaba implementar viewWillDissapear y volver a cargar datos en él, por lo que el código se parece a este

 - (void)viewWillDisappear:(BOOL)animated;{ [super viewWillDisappear:animated]; [self.tableView reloadData]; } 

La solución para mí fue simple, si no funciona para alguien, aquí encontré algunos enlaces útiles.
1) Disposition de UITableView desorderando en segue push y retorno. (iOS 8, Xcode beta 5, Swift)
2) http://useyourloaf.com/blog/2014/08/07/self-sizing-table-view-cells.html

Desafortunadamente, creo que las dos preguntas que me hacen son los errores de IOS.

Pregunta 1)

Este blog sugiere un arreglo fácil.

Cuando se visualiza por primera vez la vista de la tabla, es posible que algunas de las celdas no tengan el tamaño adecuado. Pero cuando desplaza la vista de la tabla, las celdas nuevas se muestran con la altura de fila correcta. Para solucionar este problema, puede forzar una recarga después de que aparezca la vista:

Simplemente agregue lo siguiente a su método viewDidAppear . Lo he probado y funciona muy bien.

 [self.tableView reloadData]; 

Pregunta 2)

Esta segunda pregunta es un duplicado de esta siguiente pregunta:

IOS 8 Las células autodimensionadas UITableView saltan / cambian visualmente cuando se empuja un nuevo controller de vista

El autor de la pregunta sugiere una solución alternativa, lo que parece correcto. Sin embargo, todavía no he probado esto.

Bien, lo solucioné almacenando en caching las alturas de mi celda en sizeThatFits, y devolviendo ese valor para las alturas de celda estimadas dentro del delegado. Funciona maravillosamente.

Siéntase libre de dirigirse a esa pregunta para otras soluciones propuestas.