Múltiples UILabels dentro de un UITableViewCell de tamaño propio

En esta aplicación iOS 8 que estoy creando, tengo una vista de tabla y necesito que cambien su tamaño. Lo implementé usando Auto Layout y funciona. Casi. Así es como se ve ahora.

Hay 3 etiquetas dentro de una celda. Etiqueta principal que tiene el texto lorem ipsum. Subtítulo que tiene la cadena de números (Esas son dos etiquetas separadas. Puede ser confuso porque tienen el mismo color). Luego, la tercera etiqueta con el pequeño texto negro.

La primera etiqueta se redimensionó correctamente sin problemas y la segunda etiqueta se mueve hacia arriba y hacia abajo en consecuencia. Pero el problema es con la tercera etiqueta pequeña. Como puede ver, no cambia el tamaño para adaptarse a todo el texto.

Ahora está sucediendo algo extraño. Lo giro horizontalmente y aquí está.

Como hay espacio, la etiqueta muestra todo el texto que se supone que debe mostrar. Multa. Luego lo vuelvo al retrato.

Ahora la etiqueta pequeña se ha redimensionado para adaptarse a todo su texto, pero desborda los límites de las celdas. Intenté agrandar la celda pero no funcionó. Como se trata de celdas de tamaño propio, no creo que sea la forma correcta incluso.

Tampoco recibo ningún error o incluso advertencia sobre mis restricciones de diseño automático.

He establecido estas dos líneas de código en elviewDidLoad() método.

tableView.estimatedRowHeight = 100
tableView.rowHeight = UITableViewAutomaticDimension

¿Alguien puede decirme qué podría estar haciendo mal aquí?

Dado que es difícil de responder simplemente mirando las imágenes y no tengo más código para publicar al lado del fragmento anterior, cargué un proyecto ejecutable de Xcode que demuestra el problemaaquí. (Hay 2 celdas personalizadas. Básicamente es la misma celda, solo la altura aumenta en la segunda).

He estado jugando con las restricciones de diseño automático, pero parece que no puedo hacer que esto funcione. Cualquier ayuda sería apreciada.

Gracias.

ACTUALIZAR:

Con la ayuda de estotutorial Encontré algunos consejos útiles. Según él, cada subvista debe tener restricciones que fijen todos sus lados y debe haber restricciones que van de arriba a abajo, lo que ayuda al diseño automático para calcular la altura de la celda. En mi publicación original, tenía espacios verticales entre cada etiqueta, así que creo que esa es la razón por la que el diseño automático no pudo calcular la altura adecuada.

Entonces hice algunos cambios.

Reduje el espacio vertical entre las etiquetas a 0 y establecí las restricciones de espacio vertical entre las etiquetas superiores y medias y las etiquetas medias e inferiores.Agregué restricciones principales, superiores y finales a la etiqueta superior.Al principio y al final de la etiqueta del medio.A la izquierda, al final, al final de la etiqueta inferior.

Ahora aquí hay otra parte extraña. Cuando lo ejecuté por primera vez, el problema del recorte de la etiqueta inferior sigue ahí.

Pero si giro el dispositivo a horizontal y lo vuelvo a colocar en vertical, todas las celdas se redimensionan correctamente para que se ajusten a ambas etiquetas.

Sin embargo, todavía no puedo entender por qué esto no sucede al principio. El proyecto Xcode actualizado esaquí.

Respuestas a la pregunta(5)

Su respuesta a la pregunta