Moja aplikacja ma ciemne tło, ale w iOS 7 pasek stanu stał się przezroczysty. Nic tam nie widzę, tylko zielony wskaźnik baterii w rogu. Jak mogę zmienić kolor tekstu paska stanu na biały, tak jak na ekranie głównym?
Uwaga : To nie działa dla kontrolerów wewnątrz UINavigationController, zobacz komentarz Tysona poniżej :)
Swift 3 - To zadziała kontrolery wewnątrz UINavigationController. Dodaj ten kod do kontrolera.
// Preferred status bar style lightContent to use on dark background.
// Swift 3
overridevar preferredStatusBarStyle:UIStatusBarStyle{return.lightContent
}
Swift 5 i SwiftUI
Dla SwiftUI utwórz nowy plik swift o nazwie HostingController.swift
Wygląda na to, że nie działa na iOS 7 Beta 5 z Xcode5-DP5. preferStatusBarStyle nie wydaje się być wywoływany.
wilsontgh,
18
UIViewControllerBasedStatusBarAppearance został zmieniony na Wyświetl pasek stanu oparty na kontrolerze w Xcode 5 GM seed
parilogiczny 11.11.2013
42
Otrzymałem odpowiedź na Xcode GM Seed: 1. W Info.plist umieść Wyświetl pasek stanu kontrolera jako NO 2. W appDelegate, w metodzie appDidFinishLaunching, wstaw [[Wygląd UIView] setTintColor: [UIColor whiteColor]];
parilogiczny
101
UINavigationController to szczególny przypadek, powyższe nie będzie działać. Spędziłam godziny, drapiąc się po głowie. Zobacz tutaj rozwiązanie: stackoverflow.com/a/19513714/505457
Tyson
848
Alternatywnie możesz zrezygnować z wyglądu paska stanu opartego na kontrolerze widoku:
Ustaw View controller-based status bar appearancesię NOw twojej Info.plist.
Połączenie [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Uwaga: ta metoda jest przestarzała w iOS9. preferredStatusBarStyleZamiast tego użyj w UIViewController. (patrz Biblioteka programistów Apple )
Nie trzeba kodować. Wszystko to można zrobić z poziomu listy: (1) ustaw „Wyświetl wygląd paska stanu opartego na kontrolerze” na NIE, a (2) ustaw „Styl paska stanu” na „Nieprzezroczysty czarny styl”. (Surowe wartości to UIViewControllerBasedStatusBarAppearance -> NO i UIStatusBarStyle -> UIStatusBarStyleBlackOpaque)
SwiftArchitect
3
Pamiętaj, że musisz ustawić odpowiednią wartość info.plist na NIE, aby to działało.
Abhi Beckert
9
@gothicdev: nice catch. Przyjmę twoją odpowiedź, ponieważ jest najczystsza. Opcją światła dla stylu paska może być: UIStatusBarStyleLightContent
benka
9
Ta metoda jest przestarzała w iOS 9.
lostAtSeaJoshua
439
Możesz to zrobić bez pisania wiersza kodu!
Wykonaj następujące czynności, aby kolor paska stanu był biały w całej aplikacji
Na twoim projekcie plik plist :
Styl paska stanu: Transparent black style (alpha of 0.5)
Nie wiem, czy coś się zmieniło, ale wartość UIStatusBarStyleLightContent nie jest rozpoznawana przez XCode i nie znajduje się w żadnej dokumentacji ... Chociaż wydaje się, że działa.
Nathan H
5
Ten również zmienił go na ekranie powitalnym, a samo ustawienie go w nawigatorze nie… Kudos!
viniciusnz
3
Zdecydowanie najłatwiejszy sposób, aby to zrobić i jak wspomniano, działa również na ekranie powitalnym.
7 odpowiedzi
4
Nie ma nic o nazwie UIStatusBarStyleLightContentw plist infoIstnieje jednak Transparent Blackktóry zrobi ten sam trik :) plus trzeba dodać View controller-based status bar appearance, jak to pierwotnie nie istnieje i to wszystko, czego potrzebujesz, aby zmusić go do pracy :)
user1949873
45
Dla leniwych ludzi takich jak ja, skopiuj i odejdź: <key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
Adam Waite
241
Uwaga: większość pozytywnych odpowiedzi nie działa w systemie iOS 7/8
W Info.plist ustaw „Wyświetl wygląd paska stanu kontrolera” na NIE
Dla mnie nic się nie stało z użyciem wszystkich rzeczy w innych odpowiedziach (i z innych źródeł / dokumentacji). Pomogło mi ustawienie stylu paska nawigacji na „Czarny” w XIB. Spowodowało to zmianę tekstu na biały bez żadnego kodu.
W urządzeniu żadna z powyższych odpowiedzi nie działała dla mnie, tylko ta. Myślę, że mówi wszystko o nowym systemie, że musisz ustawić NABRA_ nawigacji na CZARNY, aby tekst statusu_BIAŁY był BIAŁY.
MrTJ
2
Po zmaganiu się z wieloma rzeczami, to właśnie skończyło się na pracy. Styl został ustawiony na domyślny. Zmieniłem to i usunąłem wszystkie inne hacki paska stanu i działa.
Gujamin
1
Jeśli nie chcesz ustawiać wszystkich pasków nawigacyjnych w IB, możesz również ustawić jego wygląd proxy. [[Wygląd UINavigationBar] setBarStyle: UIBarStyleBlack];
Steve Moser
3
Nie działa dla mnie w Storyboard iOS7. Wygląda na to, że może to być efekt uboczny lub coś innego?
Chris
Chciałbym potwierdzić, że wszystkie powyższe odpowiedzi nie były dla mnie skuteczne. Po obrazie tekst paska stanu wygląda na biały. Ale powtarzam jeszcze raz, powyższe ODPOWIEDZI z Xcode 6.2 i iOS 8.2 nie działają.
Markus
98
Nic z tego nie działało, więc oto działające rozwiązanie ...
W Info.plistdodaj wiersz:
UIViewControllerBasedStatusBarAppearancei ustaw wartość NO.
Następnie w AppDelegate w didFinishLaunchingWithOptionsdodaj następujące wiersze:
To rozwiązanie działało dla mnie, podczas gdy powyższe nie.
John Contarino
Niesamowite, ale ten UIViewControllerBasedStatusBarAppearance konwertuje na to samo: Automatycznie wyświetlaj pasek stanu na kontrolerze :)
Abhishek Thapliyal
63
Nie musisz robić do tego żadnego kodu
Musisz dodać klucz „Wyświetl pasek stanu oparty na kontrolerze” w info.plist w następujący sposób:
i ustaw jego typ wartości na Boolean, a wartość na NO. Następnie kliknij ustawienia projektu, a następnie kliknij kartę Ogólne i w obszarze Informacje o wdrażaniu ustaw preferowany styl paska stanu na. Podświetl w następujący sposób:
Podobało mi się twoje podejście! W moim przypadku próbowałem wymyślić, aby styl paska stanu był tak jasny, że jest on pełny ekran (bez paska nawigacji). Potem zdałem sobie sprawę, że wszystkie inne ekrany powinny pasować do tego samego stylu światła. Tak więc dobrym rozwiązaniem jest ustalenie całości. Dzięki! (:
Igor de Lorenzi
Jeśli nie musisz tego zmieniać, gdy aplikacja jest uruchomiona. To najlepsze podejście.
Michael
To podejście zdecydowanie działa, ale wprowadza dziwny problem na iPadzie. W przypadku, gdy aplikacja obsługuje deeplink, a po uruchomieniu aplikacji przez deeplink, łącze wsteczne pojawiające się na pasku stanu znika.
Chitranshu Asthana,
Najlepszy i najprostszy.
Amit Kumar,
najlepsze rozwiązanie dla mnie: D
Gold Chicken
48
Tylko dwa kroki w następujący sposób:
Krok 1:
Na karcie Informacje w project targetDodaj wiersz:
UIViewControllerBasedStatusBarAppearance, ustaw wartość NO.
Uwielbiam tę odpowiedź, po raz pierwszy używam param „aplikacji”))
MUH Mobile Inc.,
Zapis kropkowy i byłby idealny;)
Rivera
43
Działa to w wersjach Golden Master iOS 7 i Xcode 5 GM oraz iOS7 SDK wydanych 18 września 2013 r. (Przynajmniej z ukrytym kontrolerem nawigacyjnym):
Ustaw the UIViewControllerBasedStatusBarAppearancena NOw
Info.plist.
W ViewDidLoadmetodzie lub w dowolnym miejscu, gdzie chcesz zmienić styl paska stanu:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Domyślne wartości UIViewControllerBasedStatusBarAppearance to TAK. „Aplikacje domyślnie używają nowego systemu zarządzania opartego na kontrolerze paska stanu. Aby zrezygnować, dodaj wartość NIE dla klucza UIViewControllerBasedStatusBarAppearance do swojej Info.plist.” [ bgr.com/2013/09/10/ios-7-gm-change-log-release-notes/]
Zsolt
1
Ya !! Po ustawieniu UIViewControllerBasedStatusBarAppearance na NIE, pasek stanu ukrywa się w widokach.
CashLee 李秉骏
czy powinien być stosowany do wszystkich viewdidload?
Arnlee Vizcayno
Możesz go dodać tylko w metodzie appDelegates didFinishLoading. Lub w pierwszych widokach metoda viewDidLoad, jeśli nie chcesz jej zmieniać.
Deniss Fedotovs
1
fantastycznie, ten wykonał robotę. proste i świetne kodowanie.
Felipe
32
W przypadku, gdy Twój UIViewController znajduje się w UINavigationController, będziesz musiał ustawić BarStyle:
Nie, dzięki temu kolor paska nawigacji jest taki sam, jak kolor tekstu paska stanu. To ukrywa problem, a nie rozwiązuje go!
wpearse,
2
W iOS7 pasek stanu będzie naśladował pasek UINavigation, jeśli widok zawiera UINavigationController, więc w wielu przypadkach jest to poprawna odpowiedź.
jonstaff
29
Jeśli masz wbudowany kontroler nawigacyjny utworzony za pomocą Konstruktora interfejsów , pamiętaj, aby ustawić następujące parametry w klasie zarządzającej kontrolerem nawigacyjnym:
myślę, że to jest poprawna odpowiedź (część listy) ... dlaczego miałbym dodawać kod statyczny przy didfinishlaunchingwithoptions ... Jeśli potrzebujesz tego samego koloru dla całej aplikacji, to jest właściwy sposób
user2387149
20
Idź do Project-> Target,
Następnie ustaw Status Bar Stylena Light. Sprawia, że pasek stanu jest biały z ekranu startowego.
Następnie ustaw View controller-based status bar appearance równą NOin Info.plist.
Druga część, gdzie można ustawić rzeczywistą View controller-based status bar appearance equalTO NObył kawałek mi brakuje. Dzięki
Will
18
W Swift 3 jest bardzo łatwy, wystarczy 2 kroki. Przejdź do swojej info.plist i zmień klucz View controller-based status bar appearancena „NIE”. Następnie w Appdelegate po prostu dodaj ten wiersz do metody didfinishlaunchingwithoptions
func application(_ application:UIApplication, didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptionsKey:Any]?)->Bool{// Override point for customization after application launch.
UIApplication.shared.statusBarStyle =.lightContent
returntrue}
to zostało przestarzałe w iOS9, teraz powinieneś zastąpić tę właściwość w rootviewcontroller
zrobienie tego zostało przestarzałe w iOS 9 powinno to zrobić na rootviewcontroller
zrobienie tego zostało przestarzałe w iOS 9 powinno to zrobić w przypadku zastąpienia kontrolera rootview var preferStatusBarStyle: UIStatusBarStyle {return .lightContent}
James Rochabrun
17
iOS 7 pozwala poszczególnym kontrolerom widoków określać wygląd paska stanu, jak opisano w dokumentacji dla deweloperów Apple:
iOS 7 daje kontrolerom widoków możliwość dostosowania stylu paska stanu podczas działania aplikacji. Dobrym sposobem na dynamiczną zmianę stylu paska stanu jest wdrożenie preferredStatusBarStylei - w bloku animacji - zaktualizowanie wyglądu paska stanu i wywołania setNeedsStatusBarAppearanceUpdate.
Globalne ustawienie wyglądu paska stanu jest procesem dwuetapowym.
Najpierw musisz powiedzieć iOSowi, że nie chcesz ustawiać wyglądu paska stanu na podstawie widoku po widoku.
Następnie musisz przejąć kontrolę i faktycznie ustawić nowy styl globalnego paska stanu.
Aby wyłączyć kontrolę paska stanu widok po widoku, musisz ustawić View controller-based status bar appearancewłaściwość w Info.plist.
Otwórz Nawigator projektu i wybierz projekt dla aplikacji na iOS, a następnie wybierz kartę Informacje.
Najedź kursorem na wiersz, a następnie kliknij wyświetlony znak plus, aby dodać nową właściwość do swojej .plist.
Wpisz View controller-based status bar appearancew polu Klucz, a następnie upewnij się, że pole Typ jest ustawione na Boolean. Na koniec wprowadźNO w polu Wartość.
Aby ustawić styl globalny dla paska stanu, dodaj inną właściwość w zakładce Informacje za pomocą klawisza Status bar style, typu Stringi wartości Opaque black style.
Oto post na blogu z nieco bardziej szczegółowymi informacjami i przykładowym kodem:
Dzięki. Mój problem polegał na tym, że nie widziałem, aby typ „Wyświetl wygląd paska stanu opartego na kontrolerze” był ustawiony na Ciąg. Ręczne edytowanie pliku .plist i wprowadzenie wartości logicznej rozwiązało problem.
Chris Prince
12
Nie musisz nic więcej robić, po prostu napisz ten kod w swoim viewController i uzyskaj biały pasek stanu
To zmieniło pasek kart, a nie pasek stanu dla mnie.
Keith,
11
Myślę, że wszystkie odpowiedzi tak naprawdę nie wskazują na problem, ponieważ wszystkie działają w określonych scenariuszach. Ale jeśli musisz uwzględnić wszystkie sprawy, postępuj zgodnie z poniższymi punktami:
W zależności od tego, gdzie potrzebujesz stylu światła paska stanu, zawsze powinieneś pamiętać o tych 3 punktach:
1) Jeśli potrzebujesz paska stanu na ekranie uruchamiania lub w innych miejscach, w których nie możesz go kontrolować (nie w kontrolerach widoku, ale raczej w niektórych elementach / momentach kontrolowanych przez system, takich jak ekran uruchamiania),
przechodzisz do ustawień projektu
2) jeśli masz kontroler w kontrolerze nawigacyjnym
Możesz to zmienić w kreatorze interfejsów w następujący sposób:
a) Wybierz pasek nawigacyjny kontrolera nawigacyjnego
b) Następnie ustaw styl paska nawigacyjnego na „Czarny”, ponieważ oznacza to, że pod paskiem stanu masz „czarne” -> ciemne tło, dzięki czemu pasek stanu będzie biały
proszę wyjaśnij swoją sprawę, a ja postaram się pomóc
Fawkes,
1
Musiałem dodać StatusBarIsIntialHidden = NO do listy, a także ViewControllerBasedApplicationStatusBarAppearnce = NO do listy. Potem działa to przy użyciu części pierwszej
Michael
Czy masz ekran powitalny, który ma taki sam „obraz” jak pierwszy kontroler widoku ładowania? Ponadto w sekcji „Informacje” celu możesz spróbować ustawić „Ukryj pasek stanu” na wartość false i uniknąć zajmowania się .plist. Flaga „StatusBarIsIntialHidden”
Fawkes
Ja nie. Używa wygenerowanego domyślnego xib.
Michael
Znalazłem ten problem podczas tworzenia nowego projektu w xCode 7.1 i dlatego pomyślałem, że to takie dziwne
Ponieważ pasek stanu jest przezroczysty, widok za nim jest widoczny. [...] Użyj UIStatusBarStylestałej, aby określić, czy zawartość paska stanu powinna być ciemna czy jasna:
UIStatusBarStyleLightContentwyświetla jasną zawartość. Użyj, gdy ciemna zawartość znajduje się za paskiem stanu.
Być może również interesujące:
W systemie iOS 7 możesz kontrolować styl paska stanu z poziomu pojedynczego kontrolera vew i zmieniać go podczas działania aplikacji. Aby włączyć to zachowanie, dodaj UIViewControllerBasedStatusBarAppearanceklucz do pliku aplikacji Info.plisti nadaj mu wartość YES.
Zdecydowanie polecam przejrzenie dokumentu, do którego ponownie można uzyskać dostęp za pomocą identyfikatora programisty Apple.
Próbowałem już [application setStatusBarStyle: UIStatusBarStyleLightContent]; ale tak naprawdę nic się nie zmienia, kolor tekstu jest nadal czarny
Oleksandr Veremchuk
Chciałbym być bardziej pomocny, ale, jak mówię, nie znam wystarczająco dużo procesu tworzenia systemu iOS, aby wiedzieć, co zasugerować. Przepraszam!
Aaron Miller
1) ustaw UIViewControllerBasedStatusBarAppearance na TAK na liście 2) w viewDidLoad wykonaj [self setNeedsStatusBarAppearanceUpdate]; 3) dodaj następującą metodę :-( UIStatusBarStyle) preferStatusBarStyle {return UIStatusBarStyleLightContent; }
Ustaw wartość .plist zgodnie z poziomem konfiguracji stylu paska stanu.
Oto sztuczka polegająca na zmianie / ustawieniu koloru tła paska stanu podczas uruchamiania aplikacji lub podczas viewDidLoad kontrolera widoku.
extensionUIApplication{var statusBarView:UIView?{return value(forKey:"statusBar")as?UIView}}// Set upon application launch, if you've application based status bar
classAppDelegate:UIResponder,UIApplicationDelegate{var window:UIWindow?func application(_ application:UIApplication, didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptionsKey:Any]?)->Bool{UIApplication.shared.statusBarView?.backgroundColor =UIColor.red
returntrue}}
or
// Set it from your view controller if you've view controller based statusbar
classViewController:UIViewController{overridefunc viewDidLoad(){super.viewDidLoad()UIApplication.shared.statusBarView?.backgroundColor =UIColor.red
}}
Jeśli nadal chcesz używać View controller-based status bar appearancew info.plist ustawionym na TAK, co oznacza, że możesz zmienić pasek stanu dla każdego kontrolera widoku, użyj następującego tekstu dla białego tekstu na pasku stanu w ViewDidLoad:
w info.plist ustaw wartość pola NIE Wyświetl wygląd paska stanu na kontrolerze i ustaw lampkę stylu paska stanu w ustawieniu target> ustawienie ogólne.
Pozwól, że dam ci pełną odpowiedź na twoje pytanie. Zmiana koloru tekstu paska stanu jest bardzo łatwa, ale w iOS 7 jest trochę myląca, szczególnie dla początkujących.
Jeśli próbujesz zmienić kolor z czarnego na biały w Storyboard, wybierając kontroler widoku i przechodząc do Symulacji symulowanych po prawej stronie, to nie zadziała i nie wiem dlaczego. Powinno działać, zmieniając w ten sposób, ale w dowolny sposób.
Po drugie, nie znajdziesz właściwości UIViewControllerBasedStatusBarAppearance w swoim plist, ale domyślnie jej nie ma. Musisz dodać go samodzielnie, klikając przycisk +, a następnie ustawiając go na NIE.
Kolor tekstu paska stanu iOS 7
Na koniec musisz przejść do pliku AppDelegate.m i dodać następującą metodę didFinishLaunchingWithOptions, dodać następujący wiersz:
Odpowiedzi:
Ustaw
UIViewControllerBasedStatusBarAppearance
sięYES
w pliku .plist.W
viewDidLoad
zrobić[self setNeedsStatusBarAppearanceUpdate];
Dodaj następującą metodę:
Uwaga : To nie działa dla kontrolerów wewnątrz
UINavigationController
, zobacz komentarz Tysona poniżej :)Swift 3 - To zadziała kontrolery wewnątrz
UINavigationController
. Dodaj ten kod do kontrolera.Swift 5 i SwiftUI
Dla SwiftUI utwórz nowy plik swift o nazwie
HostingController.swift
Następnie zmień następujące wiersze kodu w
SceneDelegate.swift
do
źródło
Alternatywnie możesz zrezygnować z wyglądu paska stanu opartego na kontrolerze widoku:
View controller-based status bar appearance
sięNO
w twojejInfo.plist
.[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Uwaga: ta metoda jest przestarzała w iOS9.
preferredStatusBarStyle
Zamiast tego użyj w UIViewController. (patrz Biblioteka programistów Apple )źródło
Możesz to zrobić bez pisania wiersza kodu!
Wykonaj następujące czynności, aby kolor paska stanu był biały w całej aplikacji
Na twoim projekcie plik plist :
Transparent black style (alpha of 0.5)
NO
NO
źródło
UIStatusBarStyleLightContent
wplist info
Istnieje jednakTransparent Black
który zrobi ten sam trik :) plus trzeba dodaćView controller-based status bar appearance
, jak to pierwotnie nie istnieje i to wszystko, czego potrzebujesz, aby zmusić go do pracy :)<key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
Uwaga: większość pozytywnych odpowiedzi nie działa w systemie iOS 7/8
W Info.plist ustaw „Wyświetl wygląd paska stanu kontrolera” na NIE
W AppDelegate dodaj
do
To rozwiązanie działa na iOS 7/8
źródło
Dla mnie nic się nie stało z użyciem wszystkich rzeczy w innych odpowiedziach (i z innych źródeł / dokumentacji). Pomogło mi ustawienie stylu paska nawigacji na „Czarny” w XIB. Spowodowało to zmianę tekstu na biały bez żadnego kodu.
źródło
Nic z tego nie działało, więc oto działające rozwiązanie ...
W
Info.plist
dodaj wiersz:UIViewControllerBasedStatusBarAppearance
i ustaw wartośćNO
.Następnie w AppDelegate w
didFinishLaunchingWithOptions
dodaj następujące wiersze:źródło
Nie musisz robić do tego żadnego kodu
Musisz dodać klucz „Wyświetl pasek stanu oparty na kontrolerze” w info.plist w następujący sposób:
i ustaw jego typ wartości na Boolean, a wartość na NO. Następnie kliknij ustawienia projektu, a następnie kliknij kartę Ogólne i w obszarze Informacje o wdrażaniu ustaw preferowany styl paska stanu na. Podświetl w następujący sposób:
Otóż to.
źródło
Tylko dwa kroki w następujący sposób:
Krok 1:
Na karcie Informacje w
project target
Dodaj wiersz:UIViewControllerBasedStatusBarAppearance
, ustaw wartośćNO
.Krok 2:
W projekcie
AppDelegate.m
:źródło
Działa to w wersjach Golden Master iOS 7 i Xcode 5 GM oraz iOS7 SDK wydanych 18 września 2013 r. (Przynajmniej z ukrytym kontrolerem nawigacyjnym):
Ustaw
the UIViewControllerBasedStatusBarAppearance
naNO
wInfo.plist
.W
ViewDidLoad
metodzie lub w dowolnym miejscu, gdzie chcesz zmienić styl paska stanu:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
źródło
W przypadku, gdy Twój UIViewController znajduje się w UINavigationController, będziesz musiał ustawić BarStyle:
Oryginalna odpowiedź jest tutaj
https://devforums.apple.com/message/844264#844264
źródło
Jeśli masz wbudowany kontroler nawigacyjny utworzony za pomocą Konstruktora interfejsów , pamiętaj, aby ustawić następujące parametry w klasie zarządzającej kontrolerem nawigacyjnym:
To powinno być wszystko, czego potrzebujesz.
źródło
Używam Xcode 6 beta 5 w projekcie Swift dla aplikacji na iOS 7.
Oto co zrobiłem i działa:
info.plist:
źródło
W AppDelegate.m dodaj następujące elementy.
A w pliku Plist ustaw „Wyświetl wygląd paska stanu kontrolera” na NIE.
źródło
Po prostu w Appdelegate
źródło
Cóż, to naprawdę działa dla mnie jak bułka z masłem.
Przejdź do swojej aplikacji
info.plist
.View controller-based status bar appearance
naNO
Status bar style
naUIStatusBarStyleLightContent
Następnie przejdź do delegata aplikacji i wklej następujący kod, w którym ustawiasz RootViewController systemu Windows.
Bingo To działa dla mnie.
źródło
Idź do
Project
->Target
,Następnie ustaw
Status Bar Style
naLight
. Sprawia, że pasek stanu jest biały z ekranu startowego.Następnie ustaw
View controller-based status bar appearance
równąNO
inInfo.plist
.źródło
View controller-based status bar appearance equal
TONO
był kawałek mi brakuje. DziękiW Swift 3 jest bardzo łatwy, wystarczy 2 kroki. Przejdź do swojej info.plist i zmień klucz
View controller-based status bar appearance
na „NIE”. Następnie w Appdelegate po prostu dodaj ten wiersz do metody didfinishlaunchingwithoptionsto zostało przestarzałe w iOS9, teraz powinieneś zastąpić tę właściwość w rootviewcontroller
zrobienie tego zostało przestarzałe w iOS 9 powinno to zrobić na rootviewcontroller
źródło
iOS 7 pozwala poszczególnym kontrolerom widoków określać wygląd paska stanu, jak opisano w dokumentacji dla deweloperów Apple:
Globalne ustawienie wyglądu paska stanu jest procesem dwuetapowym.
Najpierw musisz powiedzieć iOSowi, że nie chcesz ustawiać wyglądu paska stanu na podstawie widoku po widoku.
Następnie musisz przejąć kontrolę i faktycznie ustawić nowy styl globalnego paska stanu.
Aby wyłączyć kontrolę paska stanu widok po widoku, musisz ustawić
View controller-based status bar appearance
właściwość wInfo.plist
.Otwórz Nawigator projektu i wybierz projekt dla aplikacji na iOS, a następnie wybierz kartę Informacje.
Najedź kursorem na wiersz, a następnie kliknij wyświetlony znak plus, aby dodać nową właściwość do swojej
.plist
.Wpisz
View controller-based status bar appearance
w polu Klucz, a następnie upewnij się, że pole Typ jest ustawione naBoolean
. Na koniec wprowadźNO
w polu Wartość.Aby ustawić styl globalny dla paska stanu, dodaj inną właściwość w zakładce Informacje za pomocą klawisza
Status bar style
, typuString
i wartościOpaque black style
.Oto post na blogu z nieco bardziej szczegółowymi informacjami i przykładowym kodem:
http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/
źródło
Nie musisz nic więcej robić, po prostu napisz ten kod w swoim viewController i uzyskaj biały pasek stanu
źródło
Odpowiedź zaktualizowana dla dla Xcode GM Seed:
W
Info.plist
putView controller-based status bar appearance
jakoNO
W projekcie ustaw:
W ViewDidLoad:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
źródło
Myślę, że wszystkie odpowiedzi tak naprawdę nie wskazują na problem, ponieważ wszystkie działają w określonych scenariuszach. Ale jeśli musisz uwzględnić wszystkie sprawy, postępuj zgodnie z poniższymi punktami:
W zależności od tego, gdzie potrzebujesz stylu światła paska stanu, zawsze powinieneś pamiętać o tych 3 punktach:
1) Jeśli potrzebujesz paska stanu na ekranie uruchamiania lub w innych miejscach, w których nie możesz go kontrolować (nie w kontrolerach widoku, ale raczej w niektórych elementach / momentach kontrolowanych przez system, takich jak ekran uruchamiania), przechodzisz do ustawień projektu
2) jeśli masz kontroler w kontrolerze nawigacyjnym Możesz to zmienić w kreatorze interfejsów w następujący sposób:
a) Wybierz pasek nawigacyjny kontrolera nawigacyjnego
b) Następnie ustaw styl paska nawigacyjnego na „Czarny”, ponieważ oznacza to, że pod paskiem stanu masz „czarne” -> ciemne tło, dzięki czemu pasek stanu będzie biały
Lub zrób to w kodzie w następujący sposób
3) Jeśli masz tylko kontroler, który musi mieć własny styl paska stanu i nie jest osadzony w jakiejś strukturze kontenera jako UINavigationController
Ustaw styl paska stanu w kodzie kontrolera:
źródło
Po prostu dzwonię
w
metoda moich
AppDelegate
prac jest dla mnie świetna w iOS7.źródło
View controller-based status bar appearance = NO
Jest to udokumentowane w Przewodniku przejścia do interfejsu użytkownika systemu iOS 7 , do którego bezpośredniego dostępu potrzebujesz identyfikatora programisty Apple. Odpowiedni fragment:
Być może również interesujące:
Zdecydowanie polecam przejrzenie dokumentu, do którego ponownie można uzyskać dostęp za pomocą identyfikatora programisty Apple.
źródło
Oto Wskazówki / instrukcje Apple dotyczące zmiany paska stanu. Na pasku stanu dozwolone są tylko Ciemne i jasne (podczas gdy i czarne).
Oto - Jak zmienić styl paska stanu:
Jeśli chcesz ustawić styl paska stanu, poziom aplikacji, a następnie ustaw
UIViewControllerBasedStatusBarAppearance
naNO
w pliku `.plist '.jeśli chcesz ustawić styl paska stanu, na poziomie kontrolera widoku, wykonaj następujące kroki:
UIViewControllerBasedStatusBarAppearance
sięYES
w.plist
pliku, jeśli trzeba ustawić status bar w stylu tylko na poziomie UIViewController.W funkcji dodawania viewDidLoad -
setNeedsStatusBarAppearanceUpdate
przesłonić preferowanyStatusBarStyle w kontrolerze widoku.
-
Ustaw wartość .plist zgodnie z poziomem konfiguracji stylu paska stanu.
Oto sztuczka polegająca na zmianie / ustawieniu koloru tła paska stanu podczas uruchamiania aplikacji lub podczas viewDidLoad kontrolera widoku.
Oto wynik:
źródło
Zrobiłem kilka rzeczy inaczej i to działa dla mnie.
Bez zmian w kodzie skonfigurowałem mój plik .plist w następujący sposób:
Mam nadzieję, że to pomoże.
edytować
Dla każdego kontrolera widoku zmieniam właściwość Symulowane metryki „paska stanu” w serii ujęć z „wywnioskowanej” na „lekką treść”
źródło
Jeśli chcesz uzyskać ten sam wynik w Swift, możesz użyć tego kodu w pliku AppDelegate.swift:
A tekst paska stanu będzie biały :-)!
źródło
Jeśli nadal chcesz używać
View controller-based status bar appearance
w info.plist ustawionym na TAK, co oznacza, że możesz zmienić pasek stanu dla każdego kontrolera widoku, użyj następującego tekstu dla białego tekstu na pasku stanu w ViewDidLoad:źródło
W Plist dodaj to:
UIStatusBarStyleLightContent
NO
źródło
w info.plist ustaw wartość pola NIE Wyświetl wygląd paska stanu na kontrolerze i ustaw lampkę stylu paska stanu w ustawieniu target> ustawienie ogólne.
źródło
Pozwól, że dam ci pełną odpowiedź na twoje pytanie. Zmiana koloru tekstu paska stanu jest bardzo łatwa, ale w iOS 7 jest trochę myląca, szczególnie dla początkujących.
Jeśli próbujesz zmienić kolor z czarnego na biały w Storyboard, wybierając kontroler widoku i przechodząc do Symulacji symulowanych po prawej stronie, to nie zadziała i nie wiem dlaczego. Powinno działać, zmieniając w ten sposób, ale w dowolny sposób.
Po drugie, nie znajdziesz właściwości UIViewControllerBasedStatusBarAppearance w swoim plist, ale domyślnie jej nie ma. Musisz dodać go samodzielnie, klikając przycisk +, a następnie ustawiając go na NIE.
Kolor tekstu paska stanu iOS 7
Na koniec musisz przejść do pliku AppDelegate.m i dodać następującą metodę didFinishLaunchingWithOptions, dodać następujący wiersz:
Spowoduje to zmianę koloru na biały dla wszystkich kontrolerów widoku. Mam nadzieję że to pomoże!
źródło