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.

questionAnswers(9)

yourAnswerToTheQuestion