webentwicklung-frage-antwort-db.com.de

Wie ändere ich die Farbe der Statusleiste mit ios with Swift im Internet?

ich möchte die Farbe der Statusleiste meines Geräts ändern, wenn das Internet verbunden ist, und die Farbe der Statusleiste schwarz sein sollte. Wenn das Internet nicht angeschlossen ist, sollte die Farbe oder die Statusleiste rot sein, sodass angezeigt wird, ob das Internet während des Betriebs funktioniert oder nicht Arbeiten mit der Anwendung mit Swift ... Helfen Sie mir

12
Fatti Khan

In Ihrem Info.plist müssen Sie "Darstellung der Controller-basierten Statusleiste anzeigen" auf einen booleschen Wert setzen.

Wenn Sie YES setzen, sollten Sie die preferredStatusBarStyle-Funktion in jedem View-Controller überschreiben.

Wenn Sie NO einstellen, können Sie den Stil in AppDelegate festlegen, indem Sie Folgendes verwenden: 

UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
36
override func viewWillAppear(animated: Bool) {
    self.navigationController?.navigationBarHidden =  true

    //Status bar style and visibility
    UIApplication.sharedApplication().statusBarHidden = false
    UIApplication.sharedApplication().statusBarStyle = .LightContent

    //Change status bar color
    let statusBar: UIView = UIApplication.sharedApplication().valueForKey("statusBar") as! UIView
    if statusBar.respondsToSelector("setBackgroundColor:") {
        statusBar.backgroundColor = UIColor.redColor()
    }

}
28
A.G

In Swift & iOS9 getestet

Wenn Sie Navigations-Controller verwenden, fügen Sie dies in Ihre Viewcontroller-Klasse ein:

override func viewDidLoad(){
    ...
    self.navigationController?.navigationBar.barStyle = .Black
}

Andernfalls überschreiben Sie die preferredStatusBarStyle() in Ihrem UIViewController: 

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return .LightContent
}

Weitere Informationen finden Sie hier

5
Cody

Für Swift 2.3

Versuchen Sie es mit diesen Methoden

// Get network status
class func hasConnectivity() -> Bool {
    let reachability: Reachability = Reachability.reachabilityForInternetConnection()
    let networkStatus: Int = reachability.currentReachabilityStatus().value
    return networkStatus != 0
}

// change status bar color
var navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor.blueColor()
navigationBarAppearace.barTintColor = UIColor.blueColor()

Das Attribut tintColor ändert die Hintergrundfarbe der Navigationsleiste

Das barTintColor-Attribut wirkt sich auf die Farbe des aus

Wenn Sie jedoch die Farbe der Statusleiste an der Laufzeit ändern möchten, denke ich, dass besser eine Ansicht hinter Ihrer Statusleiste hinzufügt.

3
thedjnivek

Für Swift 3

Dies sollte für Xcode 8 und Swift 3 funktionieren

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}
2
Taichi Kato

// Innerhalb Ihrer AppDelegate.Swift in didFinishLaunchingWithOptions: UINavigationBar.appearance (). BarTintColor = UIColor.greenColor ()

//Optionally, if you need a specific color, how you do it with RGB:
UINavigationBar.appearance().barTintColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)

                                or 

In Ihrer Info.plist müssen Sie "Darstellung der Controller-basierten Statusleiste anzeigen" auf einen booleschen Wert setzen.

 UIApplication.sharedApplication().statusBarStyle = .LightContent

Da @rckoenes ab iOS 7 kommentiert wurde, wird die Statusleiste über Ihre App gezeichnet. Sie können also eine Ansicht hinter den Statusleistenbereich setzen (20 Pixel von der obersten Höhe der Statusleiste) und deren Hintergrundfarbe entsprechend den Statusänderungen der Internetverbindung steuern. Es gibt keine andere Möglichkeit, die Farbe der Statusleiste zu ändern.

2
Yuvrajsinh

Weißer Text in schwarzer Statusleiste: Wechseln Sie Anzeige der Controller-Statusleiste toNOin Info.plist Fügen Sie in AppDelegate.Swift let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView statusBar.backgroundColor = UIColor.blackin didFinishLaunchingWithOptions hinzu

0
Anup G Prasad