Saltar al contenido

¿Cuándo se debe configurar translatesAutoresizingMaskIntoConstraints en true?

Esta es la respuesta más acertada que encomtrarás dar, pero estúdiala pausadamente y valora si es compatible a tu trabajo.

Solución:

translatesAutoresizingMaskIntoConstraints debe configurarse para false cuando:

  1. Creas un UIView-objeto basado en código (Storyboard/NIB lo establecerá por usted si el archivo tiene habilitado el diseño automático),
  2. Y desea utilizar el diseño automático para esta vista en lugar del diseño basado en marcos,
  3. Y la vista se agregará a una jerarquía de vistas que es utilizando el diseño automático.

En este caso no todos son true. En concreto, el punto 2.

Después de devolver la vista de encabezado de viewForHeaderInSection se añade a la vista de tabla y su frame se establece en función del ancho actual de la vista de la tabla y la altura desde la que regresa heightForHeaderInSection.

Puede agregar subvistas a la vista del encabezado raíz (header en su código) y use restricciones para diseñar esas subvistas en relación con la vista del encabezado.

Ha descubierto la razón por la que no puede usar el diseño automático para la vista del encabezado en sus comentarios; en el momento de crear la vista, aún no forma parte de la jerarquía de vistas, por lo que no puede restringir sus bordes a nada.

Para tener un tamaño de encabezado dinámico, deberá agregar subvistas a su header ver y agregar restricciones entre esas subvistas y header. Luego, el diseño automático puede usar el tamaño de contenido intrínseco de header para determinar el tamaño de la vista del encabezado.

Dado que no está restringiendo el marco de headerno ajustar translatesAutoresizingMaskIntoConstraints a false. Deberá asegurarse de tener suficientes restricciones en sus subvistas para el diseño automático para determinar el tamaño de header.

Necesitará una línea continua de restricciones de arriba a abajo y posiblemente algunas restricciones de altura para sus subvistas si el tamaño del contenido intrínseco de esa subvista no es suficiente.

Cualquier subvista que agregue headerhacer necesitar translatesAutoresizingMaskIntoConstraints ajustado a false

también tienes que volver alguna cosa de estimatedHeightForHeaderInSection – cuanto más se acerque a la altura real del encabezado, mejor – si está utilizando tableview.sectionHeaderHeight = UITableViewAutomaticDimension

  • Para la vista creada mediante programación, el valor predeterminado es true y para las vistas de Interface Builder, el valor predeterminado es false

    Si la propiedad es (o se establece en) True, el sistema crea automáticamente un conjunto de restricciones basadas en el marco de la vista y su máscara de tamaño automático. Y si agrega sus propias limitaciones, inevitablemente conflicto con las restricciones autogeneradas. Esto crea un diseño insatisfactorio. Por lo tanto, al crear instancias de vistas mediante programación, asegúrese de establecer su traduceAutoresizingMaskIntoConstraints propiedad a NO.

Te mostramos reseñas y valoraciones

Si aceptas, tienes la libertad de dejar un enunciado acerca de qué le añadirías a este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *