IOS 7 Barra di stato non ereditando il colore della barra del nav
-
21-12-2019 - |
Domanda
Ho problemi a capire come ottenere la barra di stato in iOS 7 per utilizzare il colore della mia barra della navigazione.Sto usando UINavigationController
in combinazione con la libreria SWRevealController
per il menu di scorrimento NAV.
Ecco come è un'occhiata a una pagina adesso:
Voglio che la barra di stato eredita il colore grigio della barra di navigazione.Come posso fare questo?
Soluzione
È possibile modificare le informazioni del tuo progetto.plist e impostare 'Visualizza la barra di stato basata sul controller "come no
In AppDelegate devi aggiungere
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
.
A AppDelegates DidFinishLaunchingWithOptions Method.
Speriamo che funzioni per te.
Altri suggerimenti
In IOS 7 La barra di navigazione dell'altezza dell'immagine è 64 pixel.È necessario creare due immagini, una per la barra di navigazione per iOS 7 con altezza di 64 pixel e un'altra per iOS 6 o meno con altezza di 44 pixel
Quindi utilizzare questo codice
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)?YES:NO) {
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"your 64 image"] forBarMetrics:UIBarMetricsDefault];
}
else
{
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"your 44 image"] forBarMetrics:UIBarMetricsDefault];
}
. Effettuare una vista personalizzata e impostare il colore della barra di navigazione su quella vista, posizionare questa vista sul luogo della barra di stato e modificare il colore della barra di stato su Trasparente. Codifica felice
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)?YES:NO) {
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"newImage.png"] forBarMetrics:UIBarMetricsDefault];
}
else
{
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"previousImage.png"] forBarMetrics:UIBarMetricsDefault];
}
. Impostare il delegato della barra di navigazione per essere il controller di visualizzazione corrente e collegare la barra di navigazione verso l'alto.
class ViewController: UIViewController, UINavigationBarDelegate {
@IBOutlet weak var navigationBar: UINavigationBar!
override func viewDidLoad() {
navigationBar.delegate = self
}
func positionForBar(bar: UIBarPositioning) -> UIBarPosition {
return .TopAttached
}
.