iOS 7のスプラッシュスクリーンでステータスバーのテキストの色を変更する


98

すべてのビューコントローラーのステータスバーを変更する方法を示すスタックオーバーフローの 質問が既にいくつかあります。現在、ステータスバーの色を次のように変更しています。

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

の中に application:DidFinishLaunching

さらに、UIViewControllerBasedStatusBarAppearanceplistのの値をに変更しましたNO。ただし、スプラッシュスクリーンでは、ステータスバーのテキストが黒色で表示されます。

スプラッシュスクリーンでステータスバーのテキストの色を変更することはできますか?


「ステータスバーがまだ黒い色で表示されている」とはどういう意味ですか?コードが機能する場合、ステータスバーのフォントは白で、ステータスバーの背景色はスプラッシュ画像によって異なります(ステータスバーの高さ-20ピクセルが含まれるはずです)。
Vinzzz

申し訳ありません、私は本当にテキストの単語を逃しました。ステータスバーのテキストの色のみを変更しています。スプラッシュスクリーンが発生した後で変更できますが、スプラッシュスクリーンが発生しているときは変更できません。
ティアゴアルメイダ

回答:


224

プロジェクトのplistファイルに、「ステータスバースタイル」プロパティを追加します(キーはUIStatusBarStyle)。次に、このプロパティのドロップダウンにリストされているすべての可能な値を無視して、UIStatusBarStyleLightContent代わりに入力します。

そして、あなたは設定する必要はありませんUIViewControllerBasedStatusBarAppearanceNO、あなたが設定することができ、あなたのplistでpreferredStatusBarStyleあなたのビューコントローラにしたいの。


これをiOS 6の色付きステータスバーと互換性を持たせる方法はありますか?
Rafael Nobre 2013年

1
ステータスバーのテキストの色は白または黒です。バーの背景は、起動画像に由来し、バーの下に伸びている場合は、viewControllerのビューに由来します。
Vinzzz 2013年

1
さまざまなメソッドのTONSの後、これは最後に機能しました(UIViewControllerBasedStatusBarAppearanceをNOに設定して)。あなたはヒーローです。
タマシュSengel

コードUIApplication.sharedApplication()。statusBarStyle = .LightContentを使用してこれを行うこともできます。私はAppDelegateでそれを行います
Yasmin Tiomkin、

@ヤスミン:スプラッシュスクリーンの後でチェンジャーの色を変更するために、このソリューションは既に質問の一部でした;)
Vinzzz

33

コード行を記述せずにこれを行うことができます
次の手順を実行して、アプリ全体でステータスバーのテキストの色を白にします。

あなたにplistのプロジェクトファイルを:

  • ステータスバーのスタイル: UIStatusBarStyleLightContent
  • コントローラベースのステータスバーの外観を表示します。 NO
  • ステータスバーは最初は非表示になっています。 NO

受け入れられた回答は良いですが、上記の2番目の箇条書きを実行しないと、すべてのビューコントローラーで機能しませんでした。ありがとう!
Clifton Labrum、2014年

「コントローラベースのステータスバーの外観を表示する:YES」トリックを実行するようです(iOS 9)
ニコラスミアリ

19

アプリケーション全体で明るい色のステータスバーを取得するには、次のことを実行できます。

  1. プロジェクトナビゲーターでプロジェクトの名前を選択します。
  2. プロジェクトエディタの左側の列のリストからターゲットの名前を選択します。
  3. プロジェクトエディタの上部にある[一般]をクリックします。
  4. ステータスバーのスタイルを設定->ライト

plistファイルに次の値を追加します。

  1. ステータスバーのスタイル-UIStatusBarStyleLightContent
  2. コントローラベースのステータスバーの外観を表示-いいえ

これにより、SPLASH SCREENを含むアプリケーション全体でステータスバーが白色で表示されるようになります。


7

UIViewControllerBasedStatusBarAppearanceplistでをNoに設定します

次に、次のコードを完了完了の起動オプションに追加します

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

それが私のために働いたこのコードに従ってください


これはステータスバーに白いテキストを表示していますが、私の背景も明るいです。黒のテキストを表示する方法
Mangesh 2013

ターゲット上のMangeshは、一般的な設定に移動し、ステータスバーのスタイルを設定するオプションがあります
Preejith augustine

あなたは、実際にこのように、ドット構文を使用して、少し簡素その最初の行を書くことができます: if (UIDevice.currentDevice.systemVersion.floatValue >= 7) {
トッド・リーマン

2

ステータスバーの変更に関するAppleのガイドラインと手順は次のとおりです。

ここに-ステータスバーのスタイルを変更する方法:

ステータスバーのスタイル、アプリケーションレベルを設定UIViewControllerBasedStatusBarAppearanceする場合NOは、 `.plist 'ファイルでに設定します。

ステータスバースタイルを設定したい場合は、ビューコントローラーレベルで次の手順に従います。

  1. 設定するUIViewControllerBasedStatusBarAppearanceYESして.plist、あなただけのUIViewControllerレベルでセットステータスバーのスタイルに必要がある場合は、ファイル。
  2. viewDidLoad追加関数で- setNeedsStatusBarAppearanceUpdate

  3. ビューコントローラーのpreferredStatusBarStyleをオーバーライドします。

-

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

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

.plistの値を、ステータスバースタイルのセットアップレベルに従って設定します。 ここに画像の説明を入力してください


アプリケーションの起動時またはビューコントローラのviewDidLoad時にステータスバーの背景色を設定できます。

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
    }

}



これが結果です:

ここに画像の説明を入力してください


1

アプリケーション全体で明るい色のステータスバーを取得するには、次のことを実行できます。

プロジェクトナビゲーターでプロジェクトの名前を選択します。プロジェクトエディタの左側の列のリストからターゲットの名前を選択します。プロジェクトエディタの上部にある[一般]をクリックします。ステータスバーのスタイルを設定->ライト

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.