Die Statusleiste von iOS 7 übernimmt nicht die Farbe der Navigationsleiste
-
21-12-2019 - |
Frage
Ich habe Probleme herauszufinden, wie ich die Statusleiste in iOS 7 dazu bringen kann, die Farbe meiner Navigationsleiste zu verwenden.ich benutze UINavigationController
In Verbindung mit SWRevealController
Bibliothek für die Schiebemenünavigation.
So sieht eine Seite im Moment aus:
Ich möchte, dass die Statusleiste die graue Farbe der Navigationsleiste übernimmt.Wie kann ich das machen?
Lösung
Sie können die Info.plist Ihres Projekts ändern und „Darstellung der Controller-basierten Statusleiste anzeigen“ auf NEIN setzen
In AppDelegate müssen Sie hinzufügen
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
zur AppDelegates didFinishLaunchingWithOptions-Methode.
Hoffentlich funktioniert es für Sie.
Andere Tipps
In der iOS 7-Navigationsleiste beträgt die Bildhöhe 64 Pixel.Sie müssen zwei Bilder erstellen, eines für die Navigationsleiste für iOS 7 mit einer Höhe von 64 Pixeln und ein weiteres für iOS 6 oder weniger mit einer Höhe von 44 Pixeln
Dann verwenden Sie diesen Code
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];
}
Erstellen Sie eine benutzerdefinierte Ansicht und legen Sie die Farbe der Navigationsleiste auf diese Ansicht fest, platzieren Sie diese Ansicht anstelle der Statusleiste und ändern Sie die Farbe Ihrer Statusleiste in transparent.Viel Spaß beim Codieren
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];
}
Legen Sie den Delegaten der Navigationsleiste als aktuellen Ansichtscontroller fest und hängen Sie die Navigationsleiste oben an.
class ViewController: UIViewController, UINavigationBarDelegate {
@IBOutlet weak var navigationBar: UINavigationBar!
override func viewDidLoad() {
navigationBar.delegate = self
}
func positionForBar(bar: UIBarPositioning) -> UIBarPosition {
return .TopAttached
}