iOS'ta Durum Çubuğu metin rengi nasıl değiştirilir?

Uygulamamın koyu bir arka planı var, ancak iOS 7'de durum çubuğu şeffaf hale geldi. Bu yüzden orada hiçbir şey göremiyorum, sadece köşedeki yeşil pil göstergesini görebiliyorum. Durum çubuğu metin rengini ana ekranda olduğu gibi beyaza nasıl değiştirebilirim?

Çözüm
  1. .plist dosyasında UIViewControllerBasedStatusBarAppearance seçeneğini YES olarak ayarlayın.

  2. ViewDidLoadiçinde bir[self setNeedsStatusBarAppearanceUpdate];` yapın

  3. Aşağıdaki yöntemi ekleyin:

     - (UIStatusBarStyle)preferredStatusBarStyle
     {
         return UIStatusBarStyleLightContent;
     }

Not: Bu UINavigationController içindeki kontrolörler için çalışmaz, lütfen [Tyson'ın aşağıdaki yorumuna] bakın (https://stackoverflow.com/questions/17678881/how-to-change-status-bar-text-color-in-ios-7#comment28947732_17768797) :)

Swift 3 - Bu, UINavigationController içindeki denetleyicileri çalıştıracaktır. Bu kodu denetleyicinizin içine ekleyin.

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Swift 5 ve SwiftUI

SwiftUI için HostingController.swift adında yeni bir swift dosyası oluşturun

import Foundation
import UIKit
import SwiftUI

class HostingController: UIHostingController {
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}

Ardından SceneDelegate.swift içindeki aşağıdaki kod satırlarını değiştirin

window.rootViewController = UIHostingController(rootView: ContentView())

için

window.rootViewController = HostingController(rootView: ContentView())
Yorumlar (18)

Bu, doğrudan erişmek için bir Apple geliştirici kimliğine ihtiyacınız olan iOS 7 UI Transition Guide'da belgelenmiştir. İlgili alıntı:

Durum çubuğu şeffaf olduğu için arkasındaki görünüm görünür. [...] Durum çubuğu içeriğinin koyu mu yoksa açık mı olması gerektiğini belirtmek için bir UIStatusBarStyle sabiti kullanın:

UIStatusBarStyleDefault koyu içeriği görüntüler. [...]

UIStatusBarStyleLightContent açık renkli içeriği görüntüler. Durum çubuğunun arkasında koyu içerik olduğunda kullanın.

Ayrıca muhtemelen ilgi çekici:

iOS 7'de, durum çubuğunun stilini ayrı bir vew denetleyicisinden kontrol edebilir ve uygulama çalışırken değiştirebilirsiniz. Bu davranışı tercih etmek için, bir uygulamanın Info.plist dosyasına UIViewControllerBasedStatusBarAppearance anahtarını ekleyin ve buna YES değerini verin.

Yine Apple geliştirici kimliğinizle erişebileceğiniz belgeye göz atmanızı kesinlikle tavsiye ederim.

Yorumlar (3)

Bu, Xcode ve iOS 7'nin mevcut yapısıyla ilgili bir sorun gibi görünüyor.

Apple'ın Geliştirici Forumlarındaki bazı ilgili içerikler Apple Geliştirici Forumlarında "iOS 7 Beta Livability" içinde UIStatusBarStyleLightContent için bir arama* (şu anda 32 gönderi).

Hafif versiyona ayarlamaya çalışırken karşılaştım.

(Bu sadece Aaron'un cevabının devamı niteliğindedir).

Yorumlar (0)