Question

J'ai une application principalement basée sur la barre de navigation. Quelques cas nécessitent la présentation d'une vue modale, et l'un de ces cas nécessite le masquage de la barre d'état. Cependant, même si je masque la barre d'état avant de présenter la vue modale, celle-ci est décalée de 20 pixels.

Même si je règle le cadre de la vue modale sur 0, -20 320 480 après l'apparition de la vue, elle coupe le haut de la vue.

Je souhaite également que l'utilisateur puisse afficher la barre d'état (et une barre d'outils) en touchant l'écran, de la même manière que le lecteur vidéo. Donc, je règle le style sur noir transparent pour cet écran et j'espère que masquer ou afficher la barre d'état ne fera pas que la vue ne saute à la verticale.

Était-ce utile?

La solution

Vu dans votre commentaire ci-dessous que vous ciblez iPhone OS 2.x, j'ai une suggestion qui pourrait vous aider.

Avant de présenter votre vue modale, procédez comme suit:

  [[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
  [[self view] setFrame:CGRectMake(0, 0, 320, 480)];

Assurez-vous que votre vue modale a une hauteur de 480 pixels - une fois, l’espace vide de 20 pixels au bas de la page m'a trompé. Il s’est avéré que c’était parce que ma vue mesurait toujours 460 pixels (pour tenir compte de la barre d’état), donc le code fonctionnait réellement, mais ma vue n’était pas à la bonne hauteur.

Lorsque vous masquez votre vue modale, cela fonctionne:

[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
[[self view] setFrame:CGRectMake(0, 20, 320, 460)];

Vous devrez peut-être un peu modifier le code si vous utilisez presentModalViewController - J'ai essayé ceci avec -addSubview car j'utilisais une animation personnalisée. Mais les principes de base doivent être les mêmes (changer le cadre de la vue parent).

Autres conseils

Avez-vous examiné Propriété wantedFullScreenLayout sur UIViewControllers?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top