Quelle est la manière appropriée d'implémenter la barre d'état et la barre de navigation qui s'ajoutent à UIView?
Réponses
Trop de publicités?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;
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.
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.
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é.