A pesar de haber establecido restricciones para todos los elementos, incluidos los verticales necesarios para que la celda calcule su altura, el diseño automático parece ignorarse: todas las celdas están comprimidas.
Aquí hay una captura de pantalla del resultado y de las restricciones en el guión gráfico.
En el VC que contiene el tableView, aquí está el código en viewDidLoad:
tableView.estimatedRowHeight = 120.0 tableView.rowHeight = UITableViewAutomaticDimension
Al comentar la segunda línea, las celdas tienen una altura de 120.0, pero Autolayout también se ignora.
Gracias
Para simplificar la interfaz, he dejado una sola etiqueta con, como restricciones:
Y con esta interfaz simplificada, el diseño automático aún no se tiene en cuenta, lo que me indica que el problema no proviene de las restricciones mal establecidas.
En Size Inspector, la altura de la fila se establece en 120 y Custom está marcada. La celda tiene la clase personalizada correcta, el identificador de reutilización de celda es correcto.
Este fue un simple error, mira mi respuesta a continuación.
El diseño automático se ignoró porque tanto la celda del prototipo como la UIView de la celda habían recibido la clase de celda personalizada en IB.
Volver a colocar el UIView en la clase UIView resolvió el problema.
Creo que el problema es que estás implementando:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return x }
Debe eliminar esta función para que la vista de tabla calcule su altura automática para las celdas.