Attention: cela ne fonctionne plus avec iOS 13 et Xcode 11.
=================================================== =======================
J'ai dû essayer de chercher d'autres moyens. Ce qui n'implique pas addSubview
sur la fenêtre. Parce que je monte la fenêtre lorsque le clavier est présenté.
Objectif c
- (void)setStatusBarBackgroundColor:(UIColor *)color {
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = color;
}
}
Rapide
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView else {
return
}
statusBar.backgroundColor = color
}
Swift 3
func setStatusBarBackgroundColor(color: UIColor) {
guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return }
statusBar.backgroundColor = color
}
L'appel de ce formulaire a application:didFinishLaunchingWithOptions
fonctionné pour moi.
NB Nous avons une application dans l'App Store avec cette logique. Donc, je suppose que cela convient à la politique de l'App Store.
Éditer:
À utiliser à vos risques et périls. Former le commentateur @Sebyddd
J'ai eu une application rejetée à cause de cela, tandis qu'une autre a été acceptée très bien. Ils considèrent qu'il s'agit d'une utilisation d'API privée, vous avez donc de la chance pendant le processus de révision :) - Sebyddd