A barra de navegação aparece sobre as vistas com o novo SDK do 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];
Nas versões anteriores, está funcionando corretamente. A barra de pesquisa está aparecendo abaixo dostatusbar
e barra de navegação. otableview
está aparecendo abaixo da barra de pesquisa
Mas quando eu corro issoXcode 5 sdk iOS 7
, a barra de pesquisa não é visível (acho que é colocada sob a barra de status e de navegação), e também a barra de navegação está aparecendo sobre a exibição de tabela.
Será corrigido comiOS 7
versão estável ?
Ou é o problema da minha codificação?
Ou devemos lidar com isso adicionando oy(y = statubar height + nav bar height)
valor paraiOS 7
?
Recentemente baixei o Xcode 5 DP para testar meus aplicativos no iOS 7. A primeira coisa que notei e confirmei é que os limites da minha visualização nem sempre são redimensionados para levar em conta a barra de status e a barra de navegação.
Em viewDidLayoutSubviews, imprimo os limites da visão:
{{0, 0}, {320, 568}}
Isso faz com que meu conteúdo apareça abaixo da barra de navegação e da barra de status.
Eu sei que eu poderia explicar a altura, obtendo a altura da tela principal, subtraindo a altura da barra de status e a altura da barra de navegação, mas isso parece um trabalho extra desnecessário.
Alguém já experimentou esse problema?
ATUALIZAR:
Eu encontrei uma solução para esse problema específico. Defina a propriedade translúcida da barra de navegação para NO:
self.navigationController.navigationBar.translucent = NO;
Isso determinará que a visualização seja enquadrada sob a barra de navegação e a barra de status.
No entanto, não encontrei uma correção para o caso em que você deseja que a barra de navegação seja translúcida. Por exemplo, ao visualizar uma foto em tela cheia, desejo ter a barra de navegação translúcida e a vista ser enquadrada abaixo dela. Isso funciona, mas quando eu alterno mostrando / escondendo a barra de navegação, tenho resultados ainda mais estranhos. A primeira subvisão (aUIScrollView
) obtém seus limites y origem alterada a cada vez.