2014-07-14 12 views
18

Ho provato a modificare il testo a colori della barra di stato ma nessuna risposta da this thread non funziona. Uno specifico per XCode 6? insertoTesto a colori della barra di stato in XCode 6-b3 (Swift)

ho provato:

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

a UIViewController

anche

UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true) 

a AppDelegate.swift E ho cercato il cambiamento in info.plist Ma non influisce esso. In che modo la barra di stato cambia il colore del testo in bianco?

risposta

51

Nel file Info.plist è necessario definire Visualizza aspetto barra di stato basata su controller su qualsiasi valore.

enter image description here

Se si definisce SI allora si dovrebbe ignorare preferredStatusBarStyle funzione in ogni controller della vista.

Se si definisce NO allora è possibile impostare lo stile in AppDelegate utilizzando

UIApplication.sharedApplication().statusBarStyle = .LightContent

+1

Ho capito! Non ho proprio "Visualizza aspetto barra di stato basata su controller" in info.plist. L'ho aggiunto manualmente e definito. Grazie. –

+0

Lo proverei in molti modi, ma non riesco a farlo cambiare il colore di UIStatusBar :( –

+0

@JorgeVicenteMendoza, è sempre trasparente? – Keenle

0

Keenle è proprio su, da iOS7 in poi, si deve scegliere di stili barra di stato viewController basati prima puoi impostarlo su tutta l'app.

doc: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/index.html#//apple_ref/occ/instm/UIApplication/setStatusBarStyle:animated:

"Per scegliere di status comportamento barra di apparenza controller-based view, è necessario aggiungere la chiave UIViewControllerBasedStatusBarAppearance con un valore di NO per file Info.plist della tua app, ma facendo quindi non è raccomandato. "

+2

Questo dovrebbe essere un commento, non una risposta! –

1

Assicurarsi di impostare View controller-based status bar appearance nel file info.plist su Yes.

Inoltre, se si è in un UINavigationController, non è possibile semplicemente impostare lo stile in ViewControllers al suo interno. Sottoclasse l'UINavigationController e aggiungere questo ad esso:

override func preferredStatusBarStyle() -> UIStatusBarStyle { 

    if let vc = self.viewControllers?.last as? UIViewController { 
     return vc.preferredStatusBarStyle() 
    } 

    return super.preferredStatusBarStyle() 
} 

Ora è possibile impostare lo stile bar nella sottoclasse UIViewController e l'UINavigationController sarà ascoltare :).

3

appena impostato "a base di controller della vista barra di stato l'aspetto == NO" al tuo plist e mettere una sola riga nella classe AppDelegate in didfinshLaunching metodo.

UIApplication.sharedApplication().statusBarStyle = .LightContent 
2

Swift 3.0

appena impostato View controller-based status bar appearance == NO al tuo *.plist e mettere sotto il codice nella classe AppDelegate in didFinishLaunchingWithOptions metodo prima return.

let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView 
if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) { 
    statusBar.backgroundColor = UIColor.red 
} 
UIApplication.shared.statusBarStyle = .lightContent 

È possibile modificare backgroundColor e statusBarStyle secondo il vostro requisito.

+1

Benedici bene signore! – August

Problemi correlati