ios uiviewcontroller ios7 autolayout

ios - Longitud topLayoutGuide personalizada en el controlador de vista de contenedor



uiviewcontroller ios7 (1)

Digamos, por ejemplo, que he creado un controlador de vista de contenedor personalizado que se parece a un UINavigationController , pero tiene 2 barras de navegación en la parte superior.

Luego, en los controladores de vista secundaria, uso la reproducción automática y, por supuesto, quiero que el contenido comience debajo de la segunda barra de navegación.

Para lograr esto automáticamente, necesito configurar la guía de diseño superior a la altura de las dos barras de navegación combinadas.

Supuse que solo podríamos anular la topLayoutGuide -property, pero haga lo que haga, la función topLayoutGuide nunca recibe ninguna llamada en mis controladores de vista de contenedor personalizados o en los controladores de vista secundarios.

Entonces, ¿esto significa que topLayoutGuide es básicamente una propiedad sin valor, que funciona SÓLO con los controladores de vista de contenedor de Apple?

Por favor, dime que estoy equivocado!


Al leer los documentos sobre esto, la propiedad topLayoutGuide es (readonly) , y su atributo de longitud también es (readonly) . Además de eso, establece:

Un controlador de vista dentro de un controlador de vista de contenedor no establece el valor de esta propiedad. En su lugar, el controlador de vista de contenedor restringe el valor para indicar:

  • La parte inferior de la barra de navegación, si hay una barra de navegación visible
  • La parte inferior de la barra de estado, si solo se ve una barra de estado
  • El borde superior de la vista del controlador de vista, si no se ve ni una barra de estado ni una barra de navegación

Esos tres escenarios me implican que probablemente no sea personalizable, aunque me encantaría que se demuestre lo contrario. Parece un gran caso de uso para esta funcionalidad.