La reproducción automática se ignora en UITableViewCell personalizado.

A pesar de haber establecido restricciones a todos los elementos, incluidos los verticales necesarios para que la celda calcule su altura, el layout automático parece ignorarse: todas las celdas se aprietan.

Aquí hay una captura de pantalla del resultado y de las restricciones en el guión gráfico. introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

En el VC que contiene la tablaView, aquí está el código en viewDidLoad:

tableView.estimatedRowHeight = 120.0 tableView.rowHeight = UITableViewAutomaticDimension 

Al comentar la segunda línea, las celdas con una altura de 120.0 se ignoran pero también se ignora la function de reproducción automática.

Gracias


Actualizar

Para simplificar la interfaz, he dejado una sola label con, como restricciones:

  • Espacio principal para supervisar
  • Espacio superior a supervisión
  • Ancho y alto fijos (100 y 100)
  • Espacio inferior al margen del contenedor para asegurarse de que la celda tiene todas las restricciones verticales para determinar su altura

Y con esta interfaz simplificada, el layout automático todavía no se tiene en count, lo que me sugiere que el problema no surgió de las restricciones mal establecidas.

En el Inspector de tamaño, la altura de la fila se establece en 120 y se selecciona Personalizar. La celda tiene la class personalizada correcta, el identificador de reutilización de celdas es correcto.


Actualización: solución encontrada

Este fue un simple error, vea mi respuesta a continuación.

El layout automático se ignoró porque tanto la célula prototipo Y la vista UIV de la célula recibieron la class de celda personalizada en IB.

Volver a configurar UIView en la class 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 function para que la vista de tabla calcule su altura automática para las celdas.