La barra de navegación aparece sobre las vistas con el nuevo SDK de iOS7

CGRect cgRect1 = [[UIScreen mainScreen] applicationFrame];


UISearchBar  *mySearchBar = [[UISearchBar alloc] 
               initWithFrame:CGRectMake(0, 0, cgRect.size.width, 40)];

mySearchBar.autoresizingMask = 
              UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight ;


UITableView  *myTableView = [[UITableView alloc] 
     initWithFrame:CGRectMake(0, 40, cgRect.size.width, cgRect.size.height-40)];

myTableView.autoresizingMask = 
               UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;


[self.view addSubview:mySearchBar];
[self.view addSubview:myTableView];

En las versiones anteriores funciona correctamente. La barra de búsqueda aparece debajo destatusbar y barra de navegación. lostableview aparece debajo de la barra de búsqueda

Pero cuando ejecuto esto enXcode 5 sdk iOS 7, la barra de búsqueda no está visible (creo que está ubicada debajo de la barra de estado y la barra de navegación), y también la barra de navegación aparece sobre la vista de tabla.

¿Será arreglado coniOS 7 lanzamiento estable?

¿O es el problema de mi codificación?

O deberíamos manejarlo agregando la y(y = statubar height + nav bar height) valor poriOS 7 ?

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 al obtener 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.

¿Alguien más ha tenido 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 evitará 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 la vista que se debe enmarcar debajo. Eso funciona, pero cuando alterno mostrar / ocultar la barra de navegación, he experimentado resultados aún más extraños. La primera subvista (aUIScrollView) obtiene sus límites y su origen cambia cada vez.

Respuestas a la pregunta(9)

Su respuesta a la pregunta