Recientemente descargué Xcode 5 DP para probar mis aplicaciones en iOS 7. Lo primero que noté y confirmé es que los límites de mi vista no siempre cambian de tamaño para tener en cuenta la barra de estado y la barra de navegación.
En viewDidLayoutSubviews
, imprimo los límites de la vista:
{{0, 0}, {320, 568}}
Esto hace que mi contenido aparezca debajo de la barra de navegación y la barra de estado.
Sé que podría explicar la altura yo mismo obteniendo la altura de la pantalla principal, restando la altura de la barra de estado y la altura de la barra de navegación, pero eso parece un trabajo adicional innecesario.
¿Cómo puedo solucionar este problema?
Actualizar:
He encontrado una solución para este problema específico. Establezca la propiedad translúcida de la barra de navegación en NO:
self.navigationController.navigationBar.translucent = NO;
Esto solucionará que la vista se enmarque debajo de la barra de navegación y la barra de estado.
Sin embargo, no he encontrado una solución para el caso cuando desea que la barra de navegación sea translúcida. Por ejemplo, al ver una foto a pantalla completa, deseo que la barra de navegación sea translúcida y que la vista se enmarque debajo de ella. Eso funciona, pero cuando alterno mostrar / ocultar la barra de navegación, he experimentado resultados aún más extraños. La primera subvista (un UIScrollView) tiene sus límites y el origen cambia cada vez.