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 dar conta da barra de status e da barra de navegação.
Em viewDidLayoutSubviews
, imprimo os limites da exibição:
{{0, 0}, {320, 568}}
Isso resulta no meu conteúdo aparecendo 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.
Como posso corrigir esse problema?
Atualizar:
Encontrei uma solução para esse problema específico. Defina a propriedade translúcida da barra de navegação como NO:
self.navigationController.navigationBar.translucent = NO;
Isso evitará que a exibição seja enquadrada embaixo da barra de navegação e da barra de status.
No entanto, não encontrei uma correção para o caso quando você deseja que a barra de navegação seja translúcida. Por exemplo, ao visualizar uma foto em tela cheia, desejo que a barra de navegação seja translúcida e a vista seja enquadrada embaixo dela. Isso funciona, mas quando alterno a exibição / ocultação da barra de navegação, experimentei resultados ainda mais estranhos. A primeira subvisão (um UIScrollView) obtém seus limites e a origem é alterada toda vez.