2010-08-31 4 views
0

J'ai une vue typique de application (de MainWindow.xib + viewControler.xib) où je HIDDEN l'état dans le fichier AppDelegate comme ça ...statusbar et la taille cadre superview

[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

je créer divers sous-vues sur la vue principale (principalement UIWebViews) qui sont en plein écran positionnés à 0,0. Ensuite, j'ai créé un bouton qui vous permet de basculer l'affichage de la barre d'état. Mon problème commence quand je montre la barre d'état et le changement de l'orientation de l'écran, les vues n'ont pas la pleine dimension de la fenêtre et commencent juste après la barre d'état (à y: 20 au lieu de y: 0) et leur hauteur est réduit de 20pixel et si j'ai supprimé le statut, je peux voir l'espace vide. La question est la suivante: comment le code peut-il ignorer la présence de la barre d'état et toujours positionner les vues nouvelles ou réorientées dans 0,0, au lieu de 0,20 (si la barre d'état est affichée). Je pense que le problème ne réside pas dans ma vue principale, mais dans mon MainWindow.xib, mais je ne trouve aucune solution.

UPDATE1: Je vérifie également une solution dans la propriété autoresizing mask des sous-vues.

Thanx à l'avance ...

Répondre

7

j'ai finalement trouvé la solution et je peux tomber pour dormir en paix.

La solution réside dans la propriété wantsFullScreenLayout et vous devez la définir sur YES. visitez donc votre appDelegate qui ajoute votre MainView (superview) et ajoutez cette ligne:

viewController.wantsFullScreenLayout = YES; 

avant cette ligne

[window addSubview:viewController.view]; 

sur didFinishLaunchingWithOptions de votre fichier AppDelegate.m. De cette façon, votre superview utilise TOUJOURS une résolution plein écran et ne redimensionne pas si la barre d'état est présente!

Questions connexes