2015-03-10 7 views
7

Ich stoße auf ein Problem mit Statusleisten & Navigationsleisten. Standardmäßig erstreckt sich die Navigationsleiste von UINavigationController hinter der Statusleiste und färbt sie (linker Screenshot).Gefälschte Statusleiste Farbe, wenn die Navigationsleiste ausgeblendet ist

Wenn die Suchleiste verwendet wird, blende ich die Navigationsleiste aus. Dies führt zu einer ungefärbten Statusleiste. Apples Mail App hat dieses Problem nicht.

Gibt es eine andere Lösung als eine separate UIView mit einer Hintergrundfarbe zu erstellen und hinter die Statusleiste zu setzen?

Image that shows hidden and not-hidden navigation bar, and how this affects the status bar color

Hier ist, was ich möchte erreichen:

enter image description here

+1

Forschung 'UIBarPositioningDelegate' – Desdenova

+0

Dank @Desdenova Vorschlag fand ich http://stackoverflow.com/a/18897105/3512120, was mein Problem gelöst, und aswell wahrscheinlich bei Ihnen. – joels

Antwort

0

Wenn Sie die Navigationsleiste verstecken, warum Sie nicht auch das Aussehen Ihres UIStatusBar aktualisieren.

Implementieren Sie diese Funktion in Ihrem Navigation:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    //Have an if statement to determine which UIStatusBarStyle to return, i.e if the navigationBar is hidden 
    return UIStatusBarStyleLightContent; 
} 

Und es nennen, wenn Sie mithilfe dieser Navigationsleiste ausblenden:

[self setNeedsStatusBarAppearanceUpdate]; 

Eine weitere Möglichkeit, die folgen zu tun ist:

Setzen Sie UIViewControllerBasedStatusBarAppearance auf NO in Ihrer info-pList-Datei. Dann können Sie rufen

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 
0

In Ihrem IB (oder programmatisch), versuchen die simulierten Metriken für die obere Leiste zu überprüfen: Sie es aus undurchsichtigem gesetzt sollen (Navigationsleiste) bis durchscheinend.

Hinweis: Die Navigationsleiste ist standardmäßig durchscheinend. Sie sollten die "farbige" ** Statusleiste für frei erhalten.

** wie definiert durch UISearchBar.appearance().barTintColor

Verwandte Themen