Zmiana koloru tekstu paska stanu na ekranie powitalnym iOS 7


98

Wiem, że są już pytania dotyczące przepełnienia stosu, które mówią, jak zmienić pasek stanu dla wszystkich kontrolerów widoku. Obecnie zmieniam kolor paska stanu w ten sposób:

if(IS_IOS7)
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

w application:DidFinishLaunching

Dodatkowo zmieniłem wartość UIViewControllerBasedStatusBarAppearancew pliku plist na NO. Jednak na ekranie powitalnym nadal wyświetla tekst paska stanu w kolorze czarnym.

Czy można zmienić kolor tekstu paska stanu na ekranie powitalnym ?


Co masz na myśli `` nadal pokazuje pasek stanu z czarnym kolorem '': jeśli twój kod działa, czcionka paska stanu powinna być biała, kolor tła paska stanu zależy od obrazu powitalnego (który powinien teraz zawierać wysokość paska stanu - 20 pikseli)
— Vinzzz,

Przepraszam, naprawdę przegapiłem słowo tekstowe. Zmieniam tylko kolor tekstu paska stanu. Mogę to zmienić po pojawieniu się ekranu powitalnego, ale nie mogę tego zmienić, gdy się pojawia.
— Tiago Almeida

Odpowiedzi:


224

W pliku plist projektu dodaj właściwość „Styl paska stanu” (klucz jest UIStatusBarStyle). Następnie zignoruj ​​wszystkie możliwe wartości wymienione na liście rozwijanej dla tej właściwości i UIStatusBarStyleLightContentzamiast tego wpisz .

I nie musisz ustawiać UIViewControllerBasedStatusBarAppearancena NOswoim plistie, możesz ustawić preferredStatusBarStylekontrolery widoku, które chcesz.


Czy istnieje sposób, aby było to zgodne z przyciemnionym paskiem stanu w systemie iOS 6?
— Rafael Nobre

1
Kolor tekstu paska stanu jest biały lub czarny. Tło paska pochodzi z obrazu uruchamiania, a następnie z widoku kontrolera viewControllera, jeśli rozciąga się poniżej pasków.
— Vinzzz,

1
Po TONACH różnych metod, ta W KOŃCU zadziałała (z UIViewControllerBasedStatusBarAppearance ustawionym na NIE). Jesteś bohaterem.
— Tamás Sengel

możesz to również zrobić za pomocą kodu UIApplication.sharedApplication (). statusBarStyle = .LightContent. Robię to w AppDelegate
— Yasmin Tiomkin

@Yasmin: aby zmienić kolor PO ekranie powitalnym, to rozwiązanie było już częścią pytania;)
— Vinzzz

33

Możesz to zrobić bez pisania żadnego wiersza kodu
Wykonaj następujące czynności, aby tekst paska stanu był biały w całej aplikacji

W pliku plist projektu :

  • Styl paska stanu: UIStatusBarStyleLightContent
  • Wyświetl wygląd paska stanu opartego na kontrolerze: NO
  • Pasek stanu jest początkowo ukryty: NO

Zaakceptowana odpowiedź jest dobra, ale nie działała na wszystkich moich kontrolerach widoku bez wykonania drugiego punktu powyżej. Dzięki!
— Clifton Labrum

„Wyświetl wygląd paska stanu opartego na kontrolerze: YES” nadal wydaje się działać (iOS 9)
— Nicolas Miari,

19

Aby uzyskać jasny pasek stanu w całej aplikacji, możesz wykonać następujące czynności.

  1. Wybierz nazwę projektu w nawigatorze projektów.
  2. Wybierz nazwę celu z listy w lewej kolumnie edytora projektu.
  3. Kliknij Ogólne u góry edytora projektów.
  4. Ustaw styl paska stanu -> Światło

W pliku plist dodaj następujące wartości:

  1. Styl paska stanu - UIStatusBarStyleLightContent
  2. Wyświetl wygląd paska stanu opartego na kontrolerze - NIE

Pomoże to uzyskać pasek stanu w kolorze BIAŁYM w całej aplikacji, w tym na EKRANIE SPLASH.


7

Ustaw na UIViewControllerBasedStatusBarAppearanceNie na liście plist

Następnie dodaj następujący kod w opcji did finish launch

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

   [application setStatusBarStyle:UIStatusBarStyleLightContent];

    self.window.clipsToBounds =YES;

    self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}

Postępuj zgodnie z tym kodem, który zadziałał dla mnie


to pokazuje biały tekst na pasku stanu, podczas gdy moje tło jest również jasne. jak mogę pokazać czarny tekst
— Mangesh

Mangesh on the Target przejdź do ustawień ogólnych, tam będziesz miał możliwość ustawienia stylu paska stanu
— Preejith augustine

Właściwie możesz napisać tę pierwszą linię trochę prościej, używając składni kropkowej, na przykład: if (UIDevice.currentDevice.systemVersion.floatValue >= 7) {
— Todd Lehman

2

Oto wytyczne Apple / instrukcja dotycząca zmiany paska stanu.

Oto - Jak zmienić styl paska stanu:

Jeśli chcesz Ustaw status bar w stylu, następnie ustaw poziom aplikacji UIViewControllerBasedStatusBarAppearancedo NOw .plist”pliku`.

jeśli chcesz ustawić styl paska stanu, na poziomie kontrolera widoku wykonaj następujące kroki:

  1. Ustaw wartość UIViewControllerBasedStatusBarAppearancena YESw .plistpliku, jeśli chcesz ustawić styl paska stanu tylko na poziomie UIViewController.
  2. W funkcji add viewDidLoad - setNeedsStatusBarAppearanceUpdate

  3. Zastąp preferowanyStatusBarStyle w kontrolerze widoku.

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Ustaw wartość .plist zgodnie z poziomem konfiguracji stylu paska stanu. wprowadź opis obrazu tutaj


Możesz ustawić kolor tła paska stanu podczas uruchamiania aplikacji lub podczas viewDidLoad kontrolera widoku.

extension UIApplication {

    var statusBarView: UIView? {
        return value(forKey: "statusBar") as? UIView
    }

}

// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
        return true
    }
}


or 
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
    }

}



Oto wynik:

wprowadź opis obrazu tutaj


1

Aby uzyskać jasny pasek stanu w całej aplikacji, możesz wykonać następujące czynności.

Wybierz nazwę projektu w nawigatorze projektów. Wybierz nazwę celu z listy w lewej kolumnie edytora projektu. Kliknij Ogólne u góry edytora projektów. Ustaw styl paska stanu -> Światło

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.