Wie kann ich in ios7 die statusbar programmgesteuert ausblenden? Ich verwende XCode 4.6.1
( ios6.1 ) und möchte dies in XCode selbst implementieren.
in iOS7 sollten Sie in Ihrem viewController implementieren
- (BOOL)prefersStatusBarHidden {
return YES;
}
sie können die Statusleiste ausblenden, um den Schlüsselwert "Anzeige der Controller-basierten Statusleiste" einzustellen. NEIN in plist. Dies ist der einfachste Weg.
oder Sie können den Code mithilfe der Eigenschaft statusBarHidden der UIApplication-Klasse ausblenden.
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Swift 3.0
Statusleiste für einen bestimmten View-Controller ausblenden
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
Hide status bas in der Anwendung
UIApplication.shared.isStatusBarHidden = true
und legen Sie den Schlüsselwert "Anzeige der Controller-basierten Statusleiste anzeigen" NEIN in der Informationsliste des Projekts.
- (void)viewDidLoad
{
[super viewDidLoad];
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
{
[self prefersStatusBarHidden];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}
else
{
// iOS 6
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
}
// Add this method
- (BOOL)prefersStatusBarHidden {
return YES;
}
So verstecken Sie sich für einen bestimmten ViewController (und schalten ihn dann wieder ein), wenn View controller-based status bar appearance
auf NO
eingestellt ist:
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
}
-(void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
}
Wenn Sie es dynamisch auf einem bestimmten View-Controller anzeigen/ausblenden müssen, können Sie so etwas tun.
(Obwohl ich empfehle, nur - (BOOL)prefersStatusBarHidden
zu verwenden, um Ihre Präferenz zurückzugeben, wenn Sie es nicht ändern müssen.)
// view controller header
@interface MyViewController : UIViewController {
BOOL shouldHideStatusBar;
}
@end
@implementation
- (BOOL)prefersStatusBarHidden {
return shouldHideStatusBar; // backed by your instance variable
}
- (void)setPrefersStatusBarHidden:(BOOL)hidden {
shouldHideStatusBar = hidden;
// Don't call this on iOS 6 or it will crash since the
// `setNeedsStatusBarAppearanceUpdate` method doesn't exist
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
// [self setNeedsStatusBarAppearanceUpdate]; // (if Xcode 5, use this)
}
@end
Bei iOS> = 7.0 folgenden Code verwenden:
Syntax:
// Present in UIViewController of UIKit Frameworks
- (BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0); // Defaults to NO
Verwendungszweck:
- (BOOL)prefersStatusBarHidden {
return YES;
}
In iOS <7.0 verwenden Sie folgenden Code:
Syntax:
// Present in UIApplication of UIKit Frameworks
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_AVAILABLE_IOS(3_2);
Verwendungszweck:
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
auf Swift 4:
UIApplication.shared.isStatusBarHidden = ..true/false
Ich habe die Erfahrung gemacht, dass Sie sowohl den Code als auch den Wert in der Datei info.plist in iOS 9/Xcode 7.3 benötigen.
Fügen Sie dies Ihrer viewDidLoad -Methode hinzu.
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Fügen Sie dies Ihrer info.plist-Datei als booleschen Wert hinzu und setzen Sie ihn auf NO:
View controller-based status bar appearance
Bei Verwendung von iOS 9.0+ und Swift. Wenn die Statusleiste in einigen View-Controllern ausgeblendet werden soll, aber nicht in allen -, stellen Sie sicher, dass der View controller-based status bar appearance
-Wert in Info.plist
auf YES
gesetzt ist. Andernfalls werden für alle View-Controller dieselben Parameter verwendet.
Und überschreiben Sie prefersStatusBarHidden
in der Unterklasse von UIViewController
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
Auf ähnliche Weise kann preferredStatusBarStyle
geändert werden.
override var preferredStatusBarStyle: UIStatusBarStyle {
get {
return .lightContent
}
}
Schritt 1. Setzen Sie View controller-based status bar appearance
in Ihrem info.plist
aufYES
Schritt 2. Geben Sie einen Code in Ihre UIViewController
ein. Die Statusleiste wird ausgeblendet, wenn Sie die UIViewController
präsentieren.
private var statusBarIsHidden = false
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
statusBarIsHidden = true
setNeedsStatusBarAppearanceUpdate()
}
override var prefersStatusBarHidden: Bool {
return statusBarStatus
}
Wenn jemand die aktuellste Möglichkeit wollte (Swift 2.1 und der neueste Xcode 7.2)
Setzen Sie "Anzeigen der Controller-basierten Statusleiste in Ihrer info.plist auf NEIN".
UIApplication.sharedApplication (). StatusBarHidden = true // irgendwo in den App-Delegaten eingefügt
Versuche dies
[[UIApplication sharedApplication] setStatusBarHidden:YES];