ios - example - Autolayout se ignora en UITableViewCell personalizado
uitableviewcell swift (2)
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 también se ignora Autolayout.
Gracias
Actualizar
Para simplificar la interfaz, he dejado una sola etiqueta con, como restricciones:
- Espacio líder para la supervista
- Espacio superior para supervisar
- 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 todavía no se tiene en cuenta, lo que me insinúa que el problema no vino de restricciones mal establecidas.
En el Inspector de tamaño, la altura de la fila se establece en 120 y se selecciona 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.
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.