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 ?

Tiago Almeida
źródło
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.

Vinzzz
źródło
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
Lucas
źródło
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.

Anooj VM
źródło
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

Preejith augustine
źródło
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

Krunal
źródło
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

Usman Nisar
źródło