2017-02-03 18 views
1

Irgendwie, egal die Abfrage oder die Anzahl der Antworten, die ich über gekommen, ich kann nicht eine Person finden, die sagen können, wie die Statusleiste Farbe in iOS setzen Swift mit 3. Ich habe alles gesehen, die Vorschläge, wo Sie hinzufügen:Statusleiste Farbe iOS

override var preferredStatusBarStyle: UIStatusBarStyle { 
    return .lightContent 
} 

aber die Sache ist, ich möchte keine transparente Statusleiste. Ich möchte eine spezifische hex Farbe für die Statusleiste Farbe.

+1

"Ich will keine transparente Statusleiste" Pech gehabt. Es ist transparent (in den letzten Versionen von iOS). Sobald Sie die Realität akzeptieren, können Sie Workarounds akzeptieren. – matt

Antwort

1

Es gibt keine API, um die Farbe des Inhalts der Statusleiste festzulegen; Wenn Sie eine möchten, sollten Sie eine Erweiterungsanforderung here einreichen. Wenn Sie die Farbe des Hintergrunds hinter die Statusleiste ändern möchten, legen Sie eine Ansicht mit dieser Hintergrundfarbe oben im Fenster Ihrer App fest.

+0

Upvote zum Setzen einer farbigen Ansicht unterhalb der Statusleiste. Leider war das meine Art, das zu tun. – foxanna

0

Hier ist Apple Guidelines/Instruction über Statusleiste ändern. Nur Dark & Licht (während & schwarz) sind in der Statusleiste erlaubt.

Hier ist - wie Statusleiste Stil zu ändern:

Wenn Sie Statusleiste Stil festlegen möchten, Anwendungsebene festgelegt dann UIViewControllerBasedStatusBarAppearance-NO in Ihrer `.plist‘ Datei.

wenn Sie wan Statusleiste Stil zu setzen, auf View-Controller-Ebene gehen Sie folgendermaßen vor:

  1. Stellen Sie die UIViewControllerBasedStatusBarAppearance-YES in der .plist Datei, wenn Sie brauchen, um Statusleiste Stil auf UIViewController Ebene gesetzt .
  2. In der viewDidLoad Funktion hinzufügen - setNeedsStatusBarAppearanceUpdate

  3. Überschreibung preferredStatusBarStyle in Ihrem View-Controller.

-

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.setNeedsStatusBarAppearanceUpdate() 
} 

override var preferredStatusBarStyle: UIStatusBarStyle { 
    return .lightContent 
} 

Sollwert von .plist nach Statusleiste Stil Setup-Ebene. enter image description here


Sie können Hintergrundfarbe für die Statusleiste bei Programmstart oder während viewDidLoad Ihrer View-Controller eingestellt.

extension UIApplication { 

    var statusBarView: UIView? { 
     return value(forKey: "statusBar") as? UIView 
    } 

} 

// Set upon application launch, if you've application based status bar 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     UIApplication.shared.statusBarView?.backgroundColor = UIColor.red 
     return true 
    } 
} 


or 
// Set it from your view controller if you've view controller based statusbar 
class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     UIApplication.shared.statusBarView?.backgroundColor = UIColor.red 
    } 

} 



Hier ist das Ergebnis:

enter image description here