Di recente ho scaricato Xcode 5 DP per testare le mie app in iOS 7. La prima cosa che ho notato e confermato è che i limiti della mia vista non vengono sempre ridimensionati per tenere conto della barra di stato e della barra di navigazione.
In viewDidLayoutSubviews
, stampo i limiti della vista:
{{0, 0}, {320, 568}}
Ciò comporta la visualizzazione dei miei contenuti sotto la barra di navigazione e la barra di stato.
So che potrei rendere conto dell'altezza da solo ottenendo l'altezza della schermata principale, sottraendo l'altezza della barra di stato e l'altezza della barra di navigazione, ma sembra un lavoro extra inutile.
Come posso risolvere questo problema?
Aggiornare:
Ho trovato una soluzione per questo problema specifico. Impostare la proprietà traslucida della barra di navigazione su NO:
self.navigationController.navigationBar.translucent = NO;
Ciò consentirà di evitare che la vista venga inquadrata sotto la barra di navigazione e la barra di stato.
Tuttavia, non ho trovato una soluzione per il caso in cui si desidera che la barra di navigazione sia traslucida. Ad esempio, visualizzando una foto a schermo intero, desidero avere la barra di navigazione traslucida e la vista da incorniciare al di sotto di essa. Funziona, ma quando abilito a mostrare / nascondere la barra di navigazione, ho riscontrato risultati ancora più strani. La prima sottoview (un UIScrollView) ottiene i suoi limiti e l'origine cambia ogni volta.