51 votes

UIView plein écran avec barre d'état et superposition de la barre de navigation en haut

Quelle est la manière appropriée d'implémenter la barre d'état et la barre de navigation qui s'ajoutent à UIView?

texte alternatif

45voto

Jonathan Sterling Points 11628

Il suffit de définir "souhaite la mise en page plein écran" dans votre contrôleur de vue. Cela résout le problème pour moi.

 self.wantsFullScreenLayout = YES;
 

23voto

August Points 9726

Dans la capture d'écran ci-dessus, il y a une barre d'état translucide et une barre de navigation translucide.

La barre d'état est définie à l'aide de

 [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackTranslucent];
 

La barre de navigation est définie à l'aide de

 theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
 

14voto

Unfalkster Points 578

Si vous avez un contrôleur de vue à l'intérieur d'un contrôleur de navigation et que vous souhaitez masquer la barre d'état afin que l'affichage de votre viewController soit en plein écran, vous pouvez toujours appeler:

 [self.navigationController.view setNeedsLayout];
 

après avoir caché la barre d'état. Mais je pense personnellement

 [self setWantsFullScreenLayout:YES];
 

est un meilleur moyen.

4voto

Alfons Points 1700

La meilleure façon que j’ai trouvée est la suivante: lorsqu’on utilise une hiérarchie "complexe" de la barre d’onglets contenant les contrôleurs de navigation, une vue "de détail" étant une vue plein écran.

Dans le délégué de l'application juste avant que la vue du contrôleur de la barre d'onglets soit ajoutée à la fenêtre, j'ai ajouté ceci:

 tabBarController.view.frame = [[UIScreen mainScreen] bounds];
 

Ainsi, le contrôleur de la barre d’onglets couvrira l’ensemble de l’écran, même sous la zone de la barre d’état. J'ai dû compenser des hauteurs de plusieurs vues jusqu'à + 20 pixels, notamment les barres de navigation.

0voto

newgenapps_dev Points 23557

Définir le style de la barre d'état en tant que noir translucide et la barre de navigation de style noir translucide. Si vous utilisez un système de navigation basé sur l'application, dans la MainWindow.xib vérifiez la barre d'état est caché et la barre de navigation est caché cases à cocher.

Lorsque l'utilisateur touche l'écran, démarrer une minuterie pour voir si c'était un simple clic ou double-tap. Si un seul robinet, rendre la barre d'état et la barre de navigation hidden = NO. et une fois que l'utilisateur l'arrêt de l'activité, démarrer une minuterie de nouveau. après quelques temps d'absence d'activité, de les rendre à nouveau masqué.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X