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 tableView, aquí está el código en viewDidLoad:
tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension
Al comentar la segunda línea, se obtienen celdas con una altura de 120.0, pero también se ignora el diseño automático.
Gracias
Actualizar
Para simplificar la interfaz, dejé una sola etiqueta con, como restricciones:
- Espacio líder para supervista
- Espacio superior para supervista
- Ancho y alto fijos (100 y 100)
- Espacio inferior al margen del contenedor para asegurarse de que la celda tenga todas las restricciones verticales para determinar su altura
Y con esta interfaz simplificada, el diseño automático aún no se tiene en cuenta, lo que me sugiere que el problema no provino de restricciones mal establecidas.
En el Inspector de tamaño, la altura de la fila se establece en 120 y se marca Personalizado. La celda tiene la clase personalizada correcta, el identificador de reutilización de celda es correcto.
Actualización: solución encontrada
Este fue un simple error, vea mi respuesta a continuación.
fuente
Respuestas:
Se ignoró el diseño automático porque tanto la celda prototipo como la vista UIV de la celda recibieron la clase de celda personalizada en IB.
Volver a establecer UIView en la clase UIView resolvió el problema.
fuente
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.
fuente