J'ai récemment téléchargé Xcode 5 DP pour tester mes applications dans iOS 7. La première chose que j'ai remarquée et confirmée est que les limites de ma vue ne sont pas toujours redimensionnées pour tenir compte de la barre d'état et de la barre de navigation.
Dans viewDidLayoutSubviews
, j'imprime les limites de la vue:
{{0, 0}, {320, 568}}
Il en résulte que mon contenu apparaît sous la barre de navigation et la barre d'état.
Je sais que je pourrais tenir compte de la hauteur moi-même en obtenant la hauteur de l'écran principal, en soustrayant la hauteur de la barre d'état et la hauteur de la barre de navigation, mais cela semble être un travail supplémentaire inutile.
Comment puis-je résoudre ce problème?
Mise à jour:
J'ai trouvé une solution à ce problème spécifique. Définissez la propriété translucide de la barre de navigation sur NO:
self.navigationController.navigationBar.translucent = NO;
Cela empêchera la vue d'être encadrée sous la barre de navigation et la barre d'état.
Cependant, je n'ai pas trouvé de correctif pour le cas lorsque vous souhaitez que la barre de navigation soit translucide. Par exemple, en visionnant une photo en plein écran, je souhaite que la barre de navigation soit translucide et que la vue soit encadrée en dessous. Cela fonctionne, mais lorsque je bascule pour afficher / masquer la barre de navigation, j'ai rencontré des résultats encore plus étranges. La première sous-vue (un UIScrollView) obtient ses limites y l'origine changée à chaque fois.