Açılış ekranı iOS 7'de durum çubuğu metin rengini değiştirme


98

Bunun , tüm görünüm denetleyicileri için durum çubuğunun nasıl değiştirileceğini söyleyen bazı yığın akışı soruları olduğunu biliyorum . Şu anda durum çubuğunun rengini şu şekilde değiştiriyorum:

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

İçinde application:DidFinishLaunching

Ek olarak, UIViewControllerBasedStatusBarAppearanceplist içindeki değerini olarak değiştirdim NO. Ancak, açılış ekranında, siyah renkli durum çubuğu metnini görüntüler.

Açılış ekranında durum çubuğu metin renginin rengini değiştirmek mümkün mü ?


'Durum çubuğunu hala siyah renkle gösteriyor' ne demek istiyorsun: Kodunuz çalışıyorsa, durum çubuğu yazı tipi beyaz olmalıdır, durum çubuğu arka plan rengi açılış resminize bağlıdır (şimdi durum çubuğu yüksekliğini içermelidir - 20 piksel)
Vinzzz

Üzgünüm, metin kelimesini gerçekten özledim. Durum çubuğunun yalnızca metin rengini değiştiriyorum. Açılış ekranı gerçekleştikten sonra değiştirebilirim ancak açılış ekranı gerçekleşirken değiştiremiyorum.
Tiago Almeida

Yanıtlar:


224

Proje plist dosyasında "Durum Çubuğu Stili" özelliğini ekleyin (anahtar UIStatusBarStyle). Ardından, bu özellik için açılır listede listelenen tüm olası değerleri göz ardı edin ve UIStatusBarStyleLightContentbunun yerine yazın.

Ve setine yok UIViewControllerBasedStatusBarAppearanceetmek NOayarlayabileceğiniz, sizin plist preferredStatusBarStylegörünümünüzü denetleyicileri istediğiniz.


Bunu iOS 6'daki renkli bir durum çubuğuyla uyumlu hale getirmenin bir yolu var mı?
Rafael Nobre

1
Durum çubuğunun metin rengi beyaz veya siyahtır. Çubuğun arka planı başlatma görüntünüzden, ardından çubukların altına uzanıyorsa viewController'ınızın görünümünden gelir.
Vinzzz

1
TONS farklı yöntemden sonra, bu SONUNDA çalıştı (UIViewControllerBasedStatusBarAppearance NO olarak ayarlandı). Sen bir kahramansın.
Tamás Sengel

bunu UIApplication.sharedApplication () kodu aracılığıyla da yapabilirsiniz. statusBarStyle = .LightContent. Bunu AppDelegate'te yapıyorum
Yasmin Tiomkin

@Yasmin: Açılış ekranından SONRA rengini değiştirmek için, bu çözüm zaten sorunun bir parçasıydı;)
Vinzzz

33

Bunu herhangi bir kod satırı yazmadan
yapabilirsiniz Durum çubuğu metin rengini tüm uygulama boyunca beyaz yapmak için aşağıdakileri yapın

Üzerinde plist proje dosyası:

  • Durum çubuğu stili: UIStatusBarStyleLightContent
  • Denetleyici tabanlı durum çubuğu görünümünü görüntüleyin: NO
  • Durum çubuğu başlangıçta gizlidir: NO

Kabul edilen cevap iyi, ancak yukarıdaki 2. mermiyi yapmadan tüm görüş denetleyicilerimde çalışmadı. Teşekkürler!
Clifton Labrum

"Denetleyici tabanlı durum çubuğu görünümünü görüntüle: YES" hala işe yarıyor gibi görünüyor (iOS 9)
Nicolas Miari

19

Uygulama boyunca açık renkli durum çubuğu almak için aşağıdakileri yapabilirsiniz.

  1. Proje gezgininde projenin adını seçin.
  2. Proje editörünün sol sütunundaki listeden bir hedefin adını seçin.
  3. Proje düzenleyicisinin üst kısmındaki Genel'i tıklayın.
  4. Durum Çubuğu Stilini Ayarla -> Işık

Plist dosyanıza aşağıdaki değerleri ekleyin:

  1. Durum çubuğu stili - UIStatusBarStyleLightContent
  2. Denetleyici tabanlı durum çubuğu görünümünü görüntüleyin - YOK

Bu, SPLASH SCREEN dahil uygulama boyunca durum çubuğunu BEYAZ renkte almanıza yardımcı olacaktır.


7

UIViewControllerBasedStatusBarAppearancePlistte Hayır olarak ayarlayın

Daha sonra aşağıdaki kodu son başlatma seçeneğine ekleyin

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);
}

Lütfen benim için çalıştı bu kodu takip edin


bu, arka planım açıkken durum çubuğunda beyaz metin gösteriyor. siyah metni nasıl gösterebilirim
Mangesh

Hedefteki Mangesh, genel ayarlara gidin, orada durum çubuğu stilini ayarlama seçeneğiniz olacak
Preejith augustine

: Aslında bu gibi küçük bir nokta sözdizimi kullanarak daha basit bit o ilk satırı yazabilirsiniz if (UIDevice.currentDevice.systemVersion.floatValue >= 7) {
Todd Lehman

2

Durum çubuğu değişikliği ile ilgili Apple Yönergeleri / Talimatları burada .

İşte - Durum çubuğu stili nasıl değiştirilir:

Eğer set durum çubuğu tarzı istiyorsanız, uygulama düzeyinde daha sonra ayarlamak UIViewControllerBasedStatusBarAppearanceiçin NOsizin `.plist' dosyasında.

Denetleyici düzeyinde durum çubuğu stilini ayarlamak isterseniz şu adımları izleyin:

  1. Set UIViewControllerBasedStatusBarAppearanceiçin YESde .plistsize UIViewController düzeyinde sadece set durum çubuğu tarzı gerekiyorsa, dosyaya.
  2. ViewDidLoad add fonksiyonunda - setNeedsStatusBarAppearanceUpdate

  3. görünüm denetleyicinizde tercih edilenStatusBarStyle öğesini geçersiz kılın.

-

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

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

.Plist değerini durum çubuğu stil kurulum seviyesine göre ayarlayın. görüntü açıklamasını buraya girin


Uygulama başlatılırken veya görünüm denetleyicinizin viewDidLoad'u sırasında durum çubuğu için arka plan rengini ayarlayabilirsiniz.

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
    }

}



İşte sonuç:

görüntü açıklamasını buraya girin


1

Uygulama boyunca açık renkli durum çubuğu almak için aşağıdakileri yapabilirsiniz.

Proje gezgininde projenin adını seçin. Proje editörünün sol sütunundaki listeden bir hedefin adını seçin. Proje düzenleyicisinin üst kısmındaki Genel'i tıklayın. Durum Çubuğu Stilini Ayarla -> Işık

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.