Comment cachez-vous la barre d'état dans iOS 9?
C'est maintenant obsolète:
[UIApplication sharedApplication] setStatusBarHidden:YES];
Swift-3
override var prefersStatusBarHidden: Bool {
return true
}
J'ai eu l'information de ici
Remplacez func
par var
Supprimer ()
Changement ->
à :
Cela fonctionne car une variable calculée a une fonction de lecture, de sorte que la fonction que vous avez implémentée avant devient simplement la fonction de lecture.
2016 et après: chose simple comme
Sur votre info.plist, ajoutez les deux propriétés suivantes pour statusBar Hidden
Afficher l'apparence de la barre d'état basée sur le contrôleur (Boolean: NO)
La barre d'état est initialement masquée (Boolean: YES)
Par source
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
ou
Anciennes réponses! ...
ajouter application.statusBarHidden
dans didFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
application.statusBarHidden = YES;
return YES;
}
et ajouter
dans info.plist
Ajoute ça View controller-based status bar appearance
set NO
View controller-based status bar appearance = NO
ensemble caché basé sur viewcontroller
Ajouter une méthode dans votre contrôleur de vue.
Objectif -C
- (BOOL)prefersStatusBarHidden {
return YES;
}
Rapide jusqu'à 2
override func prefersStatusBarHidden() -> Bool {
return true
}
(BON) 2016.5.17 dans iOS 9.0 a bien fonctionné.
Réponse mise à jour
Pour Objective-C:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application setStatusBarHidden:YES];
return YES;
}
Pour Swift:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
application.statusBarHidden = true
return true
}
dans info.plist, ajoutez les deux propriétés suivantes.
View controller-based status bar appearance (NO)
Status bar is initially hidden (YES)
Je sais que la documentation de setStatusBarHidden:
ne mentionne pas à quoi sert plutôt. Mais l'en-tête de UIApplication
le fait.
// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_DEPRECATED_IOS(3_2, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
Ici, il est indiqué que vous devez utiliser le prefersStatusBarHidden
sur UIViewController
et utiliser les styles de barre d'état basés sur le contrôleur de vue.
Il ne vous reste plus qu'à configurer si le contrôleur de vue doit afficher ou non la barre d'état. Ainsi :
- (BOOL)prefersStatusBarHidden {
return YES;
}
Voici comment renvoyer facilement un contrôle sur la visibilité de la barre d'état pour iOS 9 + et Swift 3 +:
View controller-based status bar appearance
clé avec YES
valeur à Info.plist
.Ajoutez cette variable au contrôleur de vue:
private var isStatusBarHidden = false {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
Remplacer la propriété prefersStatusBarHidden
:
override var prefersStatusBarHidden: Bool {
return isStatusBarHidden
}
C'est ça. Vous pouvez maintenant appeler isStatusBarHidden = true
et isStatusBarHidden = false
quand tu veux.
Une approche simple consisterait à définir le windowLevel
de l’application sur normal ou sur statusBar en fonction de vos besoins.
Objective-C
Pour masquer la barre d'état
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelStatusBar;
Pour afficher la barre d'état
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelNormal;
Ajoutez également le Key
( Apparence de la barre d'état du contrôleur d'affichage ) avec la valeur booléenne NO.
Si pour une raison quelconque vous avez besoin de View controller-based status bar appearance
égal à YES
(par exemple, pour garder la barre d'état blanche)
sur la méthode didFinishLaunchingWithOptions
d'AppDelegate ou partout où vous configurez votre navigationController:
yourNavigationController.navigationBar.barStyle = .black
ensuite, utilisez la réponse géniale de alex-staravoita et ajoutez ce code partout où vous cachez la barre d'état:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Je ne suis pas sûr que ce soit la bonne manière d'obtenir ce résultat, mais cela a fonctionné pour moi et j'espère que cela aidera aussi quelqu'un d'autre :)
Dans la plupart des iOS, cela fonctionnera. J'ai testé avec iOS 10.