Meine aktuelle Anwendung läuft unter iOS 5 und 6.
Die Navigationsleiste hat eine orange Farbe und die Statusleiste hat eine schwarze Hintergrundfarbe mit weißer Textfarbe. Wenn ich jedoch dieselbe Anwendung unter iOS 7 ausführe, sehe ich, dass die Statusleiste transparent mit derselben orangefarbenen Hintergrundfarbe wie die Navigationsleiste aussieht und die Textfarbe der Statusleiste schwarz ist.
Aus diesem Grund kann ich nicht zwischen der Statusleiste und der Navigationsleiste unterscheiden.
Wie kann ich festlegen, dass die Statusleiste genauso aussieht wie in iOS 5 und 6, dh mit schwarzer Hintergrundfarbe und weißer Textfarbe? Wie kann ich das programmgesteuert machen?
ios
ios7
uicolor
ios-statusbar
Rejeesh Rajan
quelle
quelle
Antworten:
================================================== ======================
Ich musste versuchen, nach anderen Wegen zu suchen. Was nicht beinhaltet
addSubview
am Fenster beteiligt ist. Weil ich das Fenster nach oben bewege, wenn die Tastatur angezeigt wird.Ziel c
Schnell
Swift 3
Das Aufrufen dieses Formulars
application:didFinishLaunchingWithOptions
hat bei mir funktioniert.NB Wir haben eine App im App Store mit dieser Logik. Ich denke, es ist in Ordnung mit der App Store-Richtlinie.
Bearbeiten:
Benutzung auf eigene Gefahr. Bilden Sie den Kommentator @Sebyddd
quelle
Gehe zu deiner App
info.plist
1) Setze
View controller-based status bar appearance
aufNO
2) Setze
Status bar style
aufUIStatusBarStyleLightContent
Dann Gehe zu deinem App-Delegaten und füge den folgenden Code ein, in dem du den RootViewController deines Windows festlegst.
Ich hoffe es hilft.
quelle
Status bar style
Option angezeigt werden. Wählen Sie es aus. UndUIStatusBarStyleLightContent
als Wert einfügen .UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 20)];
UIApplication.sharedApplication().statusBarFrame
Bei der Behandlung der Hintergrundfarbe der Statusleiste in iOS 7 gibt es zwei Fälle
Fall 1: Ansicht mit Navigationsleiste
Verwenden Sie in diesem Fall den folgenden Code in Ihrer viewDidLoad-Methode
Fall 2: Ansicht ohne Navigationsleiste
Verwenden Sie in diesem Fall den folgenden Code in Ihrer viewDidLoad-Methode
Quelllink http://code-ios.blogspot.in/2014/08/how-to-change-background-color-of.html
quelle
1) Setzen Sie die UIViewControllerBasedStatusBarAppearance in der Liste auf YES
2) in viewDidLoad a
[self setNeedsStatusBarAppearanceUpdate];
3) Fügen Sie die folgende Methode hinzu:
UPDATE:
Überprüfen Sie auch den Entwicklerleitfaden zur ios-7-Statusleiste
quelle
Sie können die Hintergrundfarbe für die Statusleiste während des Anwendungsstarts oder während viewDidLoad Ihres View Controllers festlegen.
Hier ist das Ergebnis:
Hier finden Sie die Apple-Richtlinien / Anweisungen zum Ändern der Statusleiste. In der Statusleiste sind nur Dunkel und Hell (während und Schwarz) zulässig.
Hier ist - So ändern Sie den Stil der Statusleiste:
Wenn Sie den Statusleistenstil festlegen möchten, stellen Sie die Anwendungsebene
UIViewControllerBasedStatusBarAppearance
auf einNO
in Ihrer `.plist‘ Datei.Wenn Sie den Statusleistenstil auf Ansicht des Controllers festlegen möchten, gehen Sie folgendermaßen vor:
UIViewControllerBasedStatusBarAppearance
inYES
in der.plist
Datei, wenn Sie den Statusleistenstil nur auf UIViewController-Ebene festlegen müssen.In der viewDidLoad Add-Funktion -
setNeedsStatusBarAppearanceUpdate
Überschreiben Sie den bevorzugten StatusBarStyle in Ihrem Ansichts-Controller.
- -
quelle
In iOS 7 hat die Statusleiste keinen Hintergrund. Wenn Sie also eine schwarze, 20 Pixel hohe Ansicht dahinter platzieren, erzielen Sie das gleiche Ergebnis wie in iOS 6.
Weitere Informationen zu diesem Thema finden Sie im iOS 7 UI Transition Guide .
quelle
Schreiben Sie dies in Ihre ViewDidLoad-Methode:
Es hat die Farbe der Statusleiste für mich und andere Fehlplatzierungen der Benutzeroberfläche ebenfalls in gewissem Umfang behoben.
quelle
Hier ist eine vollständige Lösung zum Kopieren und Einfügen mit einem
absolut korrekte Erklärung
von jedem Problem beteiligt.
Vielen Dank an Warif Akhand Rishi !
für den erstaunlichen Fund bezüglich keyPath
statusBarWindow.statusBar
. Gut.quelle
Nur um Shahids Antwort zu ergänzen: Mit diesem (iOS7 +) können Sie Orientierungsänderungen oder andere Geräte berücksichtigen:
quelle
Für den Hintergrund können Sie einfach eine Ansicht hinzufügen, wie im Beispiel:
Dabei ist "navbar" eine UINavigationBar.
quelle
Swift 4:
// Hintergrundfarbe der Statusleiste ändern
quelle
Hintergrundfarbe der Statusleiste ändern: Schnell:
quelle
Im Fall von Swift 2.0 unter iOS 9
Fügen Sie Folgendes in den App-Delegaten unter didFinishLaunchingWithOptions ein:
quelle
Die iTroid23-Lösung hat bei mir funktioniert. Ich habe die Swift-Lösung verpasst. Vielleicht ist das also hilfreich:
1) In meiner Liste musste ich Folgendes hinzufügen:
2) Ich musste "setNeedsStatusBarAppearanceUpdate" nicht aufrufen.
3) In Kürze musste ich dies meinem UIViewController hinzufügen:
quelle
Wenn Sie a verwenden
UINavigationController
, können Sie eine Erweiterung wie die folgende verwenden:Grundsätzlich wird der Hintergrund der Navigationsleiste transparent und es wird eine andere UIView als Hintergrund verwendet. Sie können die
setNavigationBarBackground
Methode Ihres Navigationscontrollers aufrufen , um die Hintergrundfarbe der Navigationsleiste zusammen mit der Statusleiste festzulegen.Beachten Sie, dass Sie dann die
setNavigationBar(hidden: Bool, animated: Bool)
Methode in der Erweiterung verwenden müssen, wenn Sie die Navigationsleiste ausblenden möchten, da sonst die Ansicht, die als Hintergrund verwendet wurde, weiterhin sichtbar ist.quelle
Versuche dies. Verwenden Sie diesen Code in Ihrer Appdelegate-Klassenfunktion
didFinishLaunchingWithOptions
:quelle
Das folgende Codefragment sollte mit Ziel C funktionieren.
quelle
Für Balkenfarbe: Sie geben ein benutzerdefiniertes Hintergrundbild für den Balken an.
Für die Textfarbe: Verwenden Sie die Informationen unter Informationen zur Textverarbeitung in iOS
quelle
Es ist mir gelungen, die StatusBar-Farbe ziemlich einfach anzupassen, indem ich eine
AppDelegate.cs
Datei in der Methode hinzufügte :public override bool FinishedLaunching(UIApplication app, NSDictionary options)
nächster Code:
Sie bekommen also so etwas:
Link: https://jorgearamirez.wordpress.com/2016/07/18/lesson-x-effects-for-the-status-bar/
quelle
Swift 4
Im
Info.plist
dieser UnterkunftZeigen Sie das Controller-basierte Statusleisten-Erscheinungsbild auf NO an
und danach in
AppDelegate
Inneren derdidFinishLaunchingWithOptions
diese Zeilen Code hinzufügenquelle
In Swift 5 und Xcode 10.2
Hier habe ich die Hintergrundfarbe der Statusleiste und die Hintergrundfarbe der Navigationsleiste festgelegt. Wenn Sie nicht möchten, kommentieren Sie die Farbe der Navigationsleiste.
quelle
SWIFT-Code
quelle