webentwicklung-frage-antwort-db.com.de

Blenden Sie die Statusleiste in ios 9 aus

Wie versteckt man die Statusleiste in iOS 9?

Dies ist jetzt veraltet:

 [UIApplication sharedApplication] setStatusBarHidden:YES];
32
cdub

Swift-3

 override var prefersStatusBarHidden: Bool {  
    return true  
}  

Ich habe die Informationen von hier

  • Ändern Sie func in var

  • Löschen Sie ()

  • Ändern Sie -> In :

Dies funktioniert, weil eine berechnete Variable eine Getter-Funktion hat, sodass die zuvor implementierte Funktion einfach in die Getter-Funktion umgewandelt wird


Ab 2016: einfach

Fügen Sie in Ihrer info.plist die folgenden zwei Eigenschaften für statusBar Hidden hinzu

Controller-basiertes Erscheinungsbild der Statusleiste anzeigen (Boolean: NO)

Statusleiste ist anfangs ausgeblendet (Boolean: YES)

Nach Quelle

<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

oder

enter image description here


Alte Antworten! ...

  1. füge application.statusBarHidden in didFinishLaunchingWithOptions ein

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    application.statusBarHidden = YES;
    return YES;
    }
    

und hinzufügen

  1. in info.plist füge diesen View controller-based status bar appearance Set hinzu NO

    View controller-based status bar appearance = NO
    

viewcontroller-basiertes Hidden Set

Fügen Sie in Ihrem View Controller eine Methode hinzu.

Ziel -C

- (BOOL)prefersStatusBarHidden {
    return YES;
}

Schnell auf 2

override func prefersStatusBarHidden() -> Bool {
return true
}

(GUT) 2016.5.17 in iOS 9.0 hat gut funktioniert.

Aktualisierte Antwort

  1. Gehen Sie zur Datei Info.plist
  2. Bewegen Sie den Mauszeiger über eine dieser Zeilen und eine (+) und (-) Taste wird angezeigt.
  3. Klicken Sie auf das Pluszeichen, um einen neuen Schlüssel hinzuzufügen
  4. Geben Sie Beginnen Sie mit Großbuchstaben V ein, und die erste Wahl ist automatisch Anzeigen des Aussehens der controller-basierten Statusleiste . Fügen Sie das als den SCHLÜSSEL hinzu.
  5. Stellen Sie den Wert auf "NEIN"
  6. Gehe zu dir AppDelegate.m für Objective-C ( für Swift language: AppDelegate.Swift)
  7. Fügen Sie den Code innerhalb der Methode hinzu

Für Ziel C:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [application setStatusBarHidden:YES];

    return YES;
}

Für Swift:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
    application.statusBarHidden = true

    return true
}
81
Anbu.Karthik

fügen Sie in info.plist die folgenden beiden Eigenschaften hinzu.

View controller-based status bar appearance (NO)

Status bar is initially hidden (YES)
16
Jamil

Ich weiß, dass die Dokumentation von setStatusBarHidden: erwähnt nicht, wofür stattdessen verwendet wird. Aber der Header von UIApplication tut es.

// 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]");

Hier wird angegeben, dass Sie prefersStatusBarHidden für UIViewController verwenden und auf dem View Controller basierende Statusleistenstile verwenden sollten.

Jetzt müssen Sie nur noch konfigurieren, ob der View Controller die Statusleiste ein- oder ausblenden soll. Wie so:

- (BOOL)prefersStatusBarHidden {
   return YES;
}
7
rckoenes

So können Sie auf einfache Weise die Sichtbarkeit der Statusleiste für iOS 9 + und Swift 3 + steuern:

  1. Fügen Sie den Schlüssel View controller-based status bar appearance Mit dem Wert YES zu Info.plist Hinzu.
  2. Fügen Sie diese Variable zum View Controller hinzu:

    private var isStatusBarHidden = false {
        didSet {
            setNeedsStatusBarAppearanceUpdate()
        }
    }
    
  3. Überschreibe prefersStatusBarHidden Eigenschaft:

    override var prefersStatusBarHidden: Bool {
        return isStatusBarHidden
    }
    

Das ist es. Jetzt können Sie isStatusBarHidden = true Und isStatusBarHidden = false Jederzeit aufrufen.

6
Andrey Gordeev

Ein einfacher Ansatz wäre, je nach Ihren Anforderungen als windowLevel der Anwendung entweder "normal" oder "statusBar" festzulegen

Ziel-C

So blenden Sie die Statusleiste aus

 UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelStatusBar;

So zeigen Sie die Statusleiste an

 UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelNormal;

Fügen Sie außerdem das Key ( Controller-basiertes Statusleisten-Erscheinungsbild anzeigen ) mit dem booleschen Wert NO hinzu.

enter image description here

2
daris mathew

Wenn Sie aus irgendeinem Grund View controller-based status bar appearance gleich YES (um beispielsweise die Statusleiste weiß zu halten)

auf der didFinishLaunchingWithOptions -Methode von AppDelegate oder wo immer Sie Ihren navigationController einrichten:

yourNavigationController.navigationBar.barStyle = .black

dann benutze alex-staravoita s wunderbare Antwort und füge diesen Code hinzu, wo immer du die Statusleiste versteckst:

override var preferredStatusBarStyle: UIStatusBarStyle {
  return .lightContent
}

Ich bin nicht sicher, ob dies der richtige Weg ist, um dieses Ergebnis zu erzielen, aber es hat bei mir funktioniert und ich hoffe, es hilft auch jemand anderem :)

1
budidino

In den meisten iOS wird es funktionieren. Ich habe mit iOS 10 getestet.

  1. Öffnen Sie die info.plist
  2. "Controller-basiertes Erscheinungsbild der Statusleiste anzeigen" auf NEIN gesetzt
  3. "Statusleiste ist anfangs ausgeblendet" auf JA gesetzt
  4. Getan
0
emraz