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 de la statusbar
barra de navegación y. El tableview
está apareciendo por debajo de la barra de búsqueda
Pero cuando ejecuto esto Xcode 5 sdk iOS 7
, la barra de búsqueda no es 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.
¿Se solucionará con iOS 7
una versión estable?
¿O es el problema de mi codificación?
¿O deberíamos manejarlo agregando el (y = statubar height + nav bar height)
valor de y para iOS 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 por mí 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.
¿Alguien más ha tenido este problema?
ACTUALIZAR:
Encontré 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 en el que desea que la barra de navegación sea translúcida. Por ejemplo, al ver una foto en pantalla completa, deseo que la barra de navegación sea translúcida y que la vista quede enmarcada 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 (a UIScrollView
) cambia sus límites y origen cada vez.