iOSでステータスバーのテキストの色を変更する方法


990

私のアプリケーションの背景は暗いですが、iOS 7ではステータスバーが透明になりました。だから何も見えず、隅にある緑色のバッテリーインジケーターだけです。ステータスバーのテキストの色をホーム画面のように白に変更するにはどうすればよいですか?


9
:このリンクは、この問題に関する興味深い情報があるdoubleencore.com/2013/09/...
アドリアーノ・ルーカス

回答:


1380
  1. 設定するUIViewControllerBasedStatusBarAppearanceYESの.plistファイルに。

  2. viewDidLoad[self setNeedsStatusBarAppearanceUpdate];

  3. 次のメソッドを追加します。

    - (UIStatusBarStyle)preferredStatusBarStyle
    { 
        return UIStatusBarStyleLightContent; 
    }

:これは内のコントローラーでは機能しません。以下のTysonのコメントUINavigationControllerを参照してください:)

Swift 3-これは内部のコントローラーで動作しUINavigationControllerます。このコードをコントローラー内に追加します。

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

Swift 5およびSwiftUI

SwiftUIの場合、新しいswiftファイルを作成します HostingController.swift

import Foundation
import UIKit
import SwiftUI

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

次に、次のコード行を SceneDelegate.swift

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

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

78
私はステップ2必要はありませんでした
ジェイソン・ムーア

37
Xcode5-DP5を搭載したiOS 7 Beta 5では動作しないようです。preferredStatusBarStyleが呼び出されていないようです。
wilsontgh 2013

18
UIViewControllerBasedStatusBarAppearanceは、Xcode 5 GMシードのビューコントローラベースのステータスバーの外観に変更されます
パリロジック

42
Xcode GMシードの答えを得ました。1. Info.plistにビューコントローラーベースのステータスバーの外観をNOとして配置します。
parilogic 2013

101
UINavigationControllerは特殊なケースであり、上記は機能しません。これに頭を悩ませるのに何時間も費やしました。解決策についてはこちらをご覧ください:stackoverflow.com/a/19513714/505457
Tyson

848

または、ビューコントローラベースのステータスバーの表示を無効にすることもできます。

  1. に設定View controller-based status bar appearanceNOますInfo.plist
  2. コール [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

注:このメソッドはiOS9で廃止されました。preferredStatusBarStyle代わりにUIViewControllerで使用してください。(Apple Developer Libraryを参照)


16
これははるかに優れた簡単なルートです。
ミック・バーン

227
コーディングする必要はありません。これはすべて、plistから実行できます。(1)「ビューコントローラーベースのステータスバーの外観」をNOに設定し、(2)「ステータスバーのスタイル」を「不透明な黒のスタイル」に設定します。(Raw値はUIViewControllerBasedStatusBarAppearance-> NOおよびUIStatusBarStyle-> UIStatusBarStyleBlackOpaqueです)
SwiftArchitect

3
これを機能させるには、関連するinfo.plist値をNOに設定する必要があることに注意してください。
Abhi Beckert 2013

9
@gothicdev:いいキャッチ。それが最もきれいなのであなたの答えを受け入れますか。バースタイルのための光のオプションは以下のようになります。UIStatusBarStyleLightContent
benka

9
このメソッドはiOS 9で廃止されました
。– lostAtSeaJoshua

439

これは、コードを一切記述せずに実行できます。
アプリ全体でステータスバーのテキストの色を白にするには、次の操作を行います

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

  • ステータスバーのスタイル: Transparent black style (alpha of 0.5)
  • コントローラベースのステータスバーの外観を表示します。 NO
  • ステータスバーは最初は非表示になっています。 NO

12
変更されたかどうかはわかりませんが、UIStatusBarStyleLightContentの値がXCodeで認識されず、どのドキュメントにも見つかりません...動作しているようですが。
Nathan H

5
これもスプラッシュスクリーンで変更しましたが、ナビゲーターで設定するだけでは効果がありません。
viniciusnz 2013年

3
間違いなくこれを実現する最も簡単な方法は、前述のようにスプラッシュスクリーンでも機能します。
2013年

4
同じトリックを実行UIStatusBarStyleLightContentするplist infoHOWEVERには何も呼び出されませんTransparent Black:)さらに、View controller-based status bar appearance元々そこにないので追加する必要があり、それを機能させるために必要なものがすべてあります:)
user1949873

45
私のような怠惰な人々のために、コピーして先に進みます: <key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/>
アダム・ウェイト

241

注:最も投票された回答はiOS 7/8では機能しません

Info.plistで、「コントローラーベースのステータスバーの外観を表示」をNOに設定します。

AppDelegateに追加

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
   ......
   ...
}    

このソリューションはiOS 7/8で機能します


10
iOS 9で非推奨。:-/
sudo make install

112

私にとって、他の回答(および他のソース/ドキュメント)のすべてのものを使用しても何も起こりませんでした。役に立ったのは、XIBでナビゲーションバーのスタイルを「黒」に設定することでした。これにより、コードがまったくないテキストが白に変わりました。

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


3
デバイスでは、上記の答えはどれも私にとってはうまくいきませんでしたが、これはうまくいきました。status_barテキストをWHITEにするために、navigation_barをBLACKに設定する必要があることは、新しいシステムについてすべてを伝えていると思います。
MrTJ 2013

2
多くのことに苦労した後、これが最終的に機能したものです。スタイルはデフォルトに設定されました。これを変更し、他のすべてのステータスバーハックを取り除き、機能します。
グジャミン2013年

1
すべてのナビゲーションバーをIBに設定したくない場合は、その外観プロキシを設定することもできます。[[UINavigationBarの外観] setBarStyle:UIBarStyleBlack];
スティーブモーザー

3
iOS7ストーリーボードでは動作しません。これは何か別の副作用の可能性があるように見えますか?
Chris

上記の回答がすべて私にとってもうまくいかなかったことを確認したいと思います。画像に続いて、ステータスバーのテキストは白く見えます。しかし、繰り返しますが、上記のXcode 6.2およびiOS 8.2の回答は機能しません。
マーカス2015年

98

それは私にとってはうまくいかなかったので、ここに作業ソリューションがあります...

Info.plist、行を追加します。

UIViewControllerBasedStatusBarAppearance、値を設定しますNO

次に、のAppDelegateでdidFinishLaunchingWithOptions、次の行を追加します。

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];

この解決策は私にとってはうまくいきましたが、上記の解決策はうまくいきませんでした。
John Contarino、2016

すごいですが、このUIViewControllerBasedStatusBarAppearanceは同じに変換されます:コントローラーベースのステータスバーの外観を自動的に表示します:)
Abhishek Thapliyal

63

このためにコードを実行する必要はありません

次のように、info.plistに「コントローラベースのステータスバーの外観を表示する」キーを追加する必要があります。 ここに画像の説明を入力してください

&値のタイプをブールに設定し、値をNOに設定します。次に、プロジェクト設定をクリックしてから、[全般]タブをクリックし、[展開情報]で、次のように優先ステータスバーのスタイルを.Lightに設定します。

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

それでおしまい。


1
私はあなたのアプローチが好きでした!私の場合は、ステータスバーのスタイルをフルスクリーン(ナビゲーションバーなし)のときだけ明るくする方法を見つけようとしていました。その後、他のすべての画面が同じライトスタイルに適合する必要があることに気付きました。したがって、良い解決策は、全体を設定することです。ありがとう!(:
イゴールデロレンツィ

アプリの実行中にこれを変更する必要がない場合。これが最良のアプローチです。
マイケル、

このアプローチは確実に機能しますが、iPadで奇妙な問題が発生します。アプリケーションがディープリンクをサポートし、ディープリンクからアプリケーションを起動すると、ステータスバーに表示されているバックリンクが消えます。
Chitranshu Asthana 16

最高で最もシンプルなもの。
Amit Kumar

私にとって最高のソリューション:D
ゴールドチキン

48

次の2つのステップのみ:

ステップ1:

の[情報]タブで、project target行を追加します。

UIViewControllerBasedStatusBarAppearance、設定値NO

ステップ2:

プロジェクトでAppDelegate.m

- (BOOL)application:(UIApplication *)application 
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{[application setStatusBarStyle:UIStatusBarStyleLightContent];}

4
「アプリケーション」パラメータを使用するのは初めてなので、この回答が大好きです))
MUH Mobile Inc.

ドット表記と完璧です;)
Rivera

43

これは、Golden Master iOS 7およびXcode 5 GMシード、および2013年9月18日にリリースされたiOS7 SDKで機能します(少なくともナビゲーションコントローラーは非表示)。

  1. 設定しthe UIViewControllerBasedStatusBarAppearanceNOして Info.plist

  2. ViewDidLoadメソッドまたはどこでも、どこに変更ステータスバーのスタイルにしたいですか: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


1
UIViewControllerBasedStatusBarAppearanceのデフォルト値はYESのようです。「アプリはデフォルトで新しいビューコントローラーベースのステータスバー管理システムを使用します。これをオプトアウトするには、UIViewControllerBasedStatusBarAppearanceキーに値NOをInfo.plistに追加します。」[ bgr.com/2013/09/10/ios-7-gm-change-log-release-notes/]
Zsolt

1
Ya !! UIViewControllerBasedStatusBarAppearanceをNOに設定すると、ステータスバーがビューに表示されなくなります。
CashLee李舜骏2013

すべてのviewdidloadに適用する必要がありますか?
Arnlee Vizcayno 2013

appDelegatesのdidFinishLoadingメソッドだけで追加できます。または、変更したくない場合は、最初のビューのviewDidLoadメソッドで。
Deniss Fedotovs 2013

1
素晴らしい、これは仕事をした。シンプルで素晴らしいコーディング。
フェリペ

32

UIViewControllerがUINavigationController内にある場合は、BarStyleを設定する必要があります。

-[UINavigationBar setBarStyle:UIBarStyleBlack]

元の回答はこちら

https://devforums.apple.com/message/844264#844264


いいえ、これにより、ナビゲーションバーの色がステータスバーのテキストの色と同じになります。これは問題を隠し、修正するのではありません!
wpearse 2013

2
iOS7では、ビューにUINavigationControllerが含まれている場合、ステータスバーはUINavigationBarを模倣するため、多くの場合、これが正しい答えです。
jonstaff 2014年

29

Interface Builderを介して作成された埋め込みナビゲーションコントローラーがある場合は、ナビゲーションコントローラーを管理するクラスで以下を設定してください。

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
} 

それで十分です。


これは、ストーリーボードを使用せず、xibを使用しないアプリで機能する唯一のソリューションでした。IB以外のユーザーにも役立つはずです。
Johnny Sparks

2
これは、各ビューコントローラーで異なるスタイルを設定する必要があるときに完璧でした
Ben

「View controller-based status bar appear」をyesに設定したままにしたい場合は、これが適切な方法です。ありがとう!
cloudsurfin 2014年

28

iOS 7アプリのSwiftプロジェクトでXcode 6ベータ5 を使用しています。

これが私がやったことです、そしてそれはうまくいきます:

info.plist:

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


2
ありがとうございます。IOS7の最新バージョンで動作するソリューションのみのように見えます
Dekel Maman

このソリューションは、起動画面で、アプリの読み込み中にステータスバーを表示します。
Juan Boero、2015年

xCode 7.1で私の問題を解決しました。最新バージョン。Appleは何かを機能させるためにいくつかの重要な要素を忘れていました。再び。
マイケル

22

AppDelegate.mで、以下を追加します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

} 

また、Plistファイルで、[コントローラーベースのステータスバーの表示]を[いいえ]に設定します。



20

まあ、これは本当に私にとっては簡単な仕事のようです。

アプリのに移動しますinfo.plist

  1. 設定するView controller-based status bar appearanceにはNO
  2. 設定するStatus bar styleにはUIStatusBarStyleLightContent

次に、アプリのデリゲートに移動し、WindowsのRootViewControllerを設定する次のコードに貼り付けます。

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
    UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,320, 20)];
    view.backgroundColor=[UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:1.0];
    [self.window.rootViewController.view addSubview:view];
}

ビンゴ。それは私のために働いています。


1
私はこれが正しい答えだと思います(plistの一部)... didfinishlaunchingwithoptionsに静的コードを追加する理由...アプリ全体に同じ色が必要な場合、これは正しい方法です
user2387149

20
  1. 行きますProject- > Target

  2. 次にに設定Status Bar StyleLightます。起動画面からステータスバーを白くします。 プロジェクト設定

  3. 次に、にView controller-based status bar appearance等しく設定NOInfo.plistます。


2
あなたが実際View controller-based status bar appearance equalに設定した2番目の部分はNO私が欠けていた部分でした。ありがとう
ウィル

18

情報の変更PLIST Swiftでは、2つのステップだけで非常に簡単です。info.plistに移動し、キーView controller-based status bar appearanceを「NO」に変更します。次に、Appdelegateでこの行をdidfinishlaunchingwithoptionsメソッドに追加します。

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        UIApplication.shared.statusBarStyle = .lightContent
        return true
    }

これはiOS9で非推奨になりました。rootviewcontrollerでこのプロパティをオーバーライドする必要があります。

これを行うことはiOS 9で非推奨になり、rootviewcontrollerでこれを行う必要があります

override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
 }

1
それは素晴らしい仲間です:)ありがとう。
Naresh Reddy M 2017

これを実行することはiOS 9で非推奨になり、rootviewcontrollerオーバーライドでこれを行う必要がありますvar preferredStatusBarStyle:UIStatusBarStyle {return .lightContent}
James Rochabrun

17

iOS 7では、Apple開発者向けドキュメントで説明されているように、個々のビューコントローラーでステータスバーの外観を決定できます。

iOS 7では、ビューコントローラーがアプリの実行中にステータスバーのスタイルを調整できるようになっています。ステータスバーのスタイルを動的に変更する良い方法は、ステータスpreferredStatusBarStyleブロックの外観を実装してアニメーションブロック内で更新し、を呼び出すことsetNeedsStatusBarAppearanceUpdateです。

ステータスバーの外観をグローバルに設定するには、2つの手順を実行します。

まず、ステータスバーの外観をビューごとに設定しないことをiOSに伝える必要があります。

次に、担当して実際に新しいグローバルステータスバースタイルを設定する必要があります。

ビューごとのステータスバーコントロールを無効にするには、でView controller-based status bar appearanceプロパティを設定する必要がありますInfo.plist

プロジェクトナビゲーターを開き、iOSアプリのプロジェクトを選択して、[情報]タブを選択します。

行にカーソルを合わせ、表示されるプラス記号をクリックして、新しいプロパティをに追加します.plist

View controller-based status bar appearance[キー]フィールドに入力し、[タイプ]フィールドがに設定されていることを確認しBooleanます。最後に、NO「値」フィールドにします。

ステータスバーのグローバルスタイルを設定するにはStatus bar style、[情報]タブの下に、キー、タイプString、値を使用して別のプロパティを追加しますOpaque black style

これがもう少し詳細とサンプルコードを含むブログ投稿です:

http://codebleep.com/setting-the-status-bar-text-color-in-ios-7/


ありがとう。私の問題は、「ビューコントローラーベースのステータスバーの外観」のタイプが文字列に設定されていることがわかりませんでした。「手動」で.plistファイルを編集し、ブール値を入力すると、問題が解決しました。
Chris Prince

12

追加の必要はありません。このコードをviewControllerに記述して、ステータスバーの色を白にしてください。

- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}

実装後、これをViewController.mの下に配置します。それは最も簡単で、うまく機能します!モヒトありがとう!
Phil Mulkins、2014年

12

Xcode GMシード用に更新された回答:

  1. ではInfo.plistプットView controller-based status bar appearanceとしてNO

  2. プロジェクトで、次のように設定します。

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

  3. ViewDidLoadで:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


これにより、ステータスバーではなくタブバーが変更されました。
キース

11

すべての回答が特定のシナリオで機能するため、すべての回答が問題を実際に示しているわけではないと思います。ただし、すべてのケースをカバーする必要がある場合は、以下のポイントに従ってください。

ステータスバーのライトスタイルが必要な場所に応じて、常に次の3つの点に留意してください。

1)起動画面またはその他の場所でステータスバーが必要な場合、それを制御できない場所(ビューコントローラーではなく、起動画面などの一部のシステム制御要素/瞬間) 。プロジェクト設定に移動します。 プロジェクト設定

2)ナビゲーションコントローラー内にコントローラーがある場合 次のように、インターフェイスビルダーで変更できます。

a)ナビゲーションコントローラーのナビゲーションバーを選択します ナビゲーションコントローラーのナビゲーションバーを選択します

b)次に、ナビゲーションバーのスタイルを「黒」に設定します。これは、ステータスバーの下に「黒」->暗い背景が表示されるため、ステータスバーが白に設定されるためです。

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

または次のようにコードでそれを行います

navigationController?.navigationBar.barStyle = UIBarStyle.Black

3)独自のステータスバースタイルを持つ必要があるコントローラーのみがあり、UINavigationControllerとしてコンテナー構造に埋め込まれていない場合

コントローラーのコードでステータスバーのスタイルを設定します。

コードでステータスバーのスタイルを設定する


あなたのケースを説明してください。私がお手伝いします
Fawkes、2015年

1
StatusBarIsIntiallyHidden = NOをplistに、ViewControllerBasedApplicationStatusBarAppearnce = NOをplistに追加する必要がありました。その後、これはパート1を使用して機能します
Michael

最初のローディングビューコントローラと同じ「画像」を持つスプラッシュスクリーンはありましたか?また、ターゲットの[情報]セクションで、[ステータスバーを非表示]をfalseに設定して、.plistを扱わないようにすることもできます。「StatusBarIsIntiallyHidden」フラグ
Fawkes

私はしません。生成されたデフォルトのxibを使用しています。
マイケル

xCode 7.1で新しいプロジェクトを作成するときにこの問題を実際に見つけたので、これはとても奇妙だと思ったのです
Michael

10

単に電話する

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

の中に

-(BOOL)application:(UIApplication *)application 
           didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
}

AppDelegate私のiOS7での使用に最適な方法。


うわー、ここでくるくるが、この答えは私のために働いた。Xcode 6とiOS 8 SDKを使用しています
Ethan Parker

1
素晴らしい、iOS 9で私のために働くView controller-based status bar appearance = NO
dstudeba '19 / 10/19

9

これは、iOS 7 UI移行ガイドに記載されています。直接アクセスするには、Apple開発者IDが必要です。関連する抜粋:

ステータスバーは透明なので、背後のビューが透けて見えます。[...] UIStatusBarStyleステータスバーのコンテンツを暗いか明るいかを指定するには、定数を使用します:

UIStatusBarStyleDefault暗いコンテンツを表示します。[...]

UIStatusBarStyleLightContent軽いコンテンツを表示します。暗いコンテンツがステータスバーの背後にある場合に使用します。

また、おそらく興味深い:

iOS 7では、個々のvewコントローラーからステータスバーのスタイルを制御し、アプリの実行中に変更できます。この動作を有効にするUIViewControllerBasedStatusBarAppearanceには、アプリのInfo.plistファイルにキーを追加して、値を指定しますYES

このドキュメントを一読することをお勧めします。このドキュメントも、Apple開発者IDでアクセスできます。


3
[アプリケーションsetStatusBarStyle:UIStatusBarStyleLightContent]をすでに試しました。しかし実際には何も変化せず、テキストの色はまだ黒です
Oleksandr Veremchuk 2013

私はもっ​​と助けてもらいたいですが、私が言うように、何を提案すべきかを知るのに十分なほどiOS開発プロセスに精通していません。ごめんなさい!
アーロンミラー

1)plistでUIViewControllerBasedStatusBarAppearanceをYESに設定します2)viewDidLoadで[self setNeedsStatusBarAppearanceUpdate]を実行します。3)次のメソッドを追加します:-( UIStatusBarStyle)preferredStatusBarStyle {return UIStatusBarStyleLightContent; }
Peter B. Kramer

9

ここにあるアップルのガイドライン/命令ステータスバーの変更については。ステータスバーでは、ダークとライト(白と黒)のみが許可されています。

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

ステータスバーのスタイル、アプリケーションレベルを設定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
    }

}



これが結果です:

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


8

私はいくつか異なることをしました、そしてそれは私のために働きます。

コードを変更することなく、.plistファイルを次のように構成しました。

  • コントローラベースのステータスバーの外観を表示>いいえ
  • ステータスバーのスタイル> UIStatusBarStyleLightContent(単純な文字列)

お役に立てば幸いです。

編集する

ビューコントローラーごとに、ストーリーボードの「ステータスバー」の「シミュレートされたメトリック」プロパティを「推定」から「ライトコンテンツ」に変更します


8

Swiftで同じ結果が必要な場合は、このコードをAppDelegate.swiftファイルで使用できます。

UINavigationBar.appearance().barStyle = .BlackTranslucent

そして、ステータスバーのテキストは白くなります:-)!


8

View controller-based status bar appearanceYESに設定されたinfo.plistで引き続き使用する場合、つまり各ビューコントローラーのステータスバーを変更できる場合は、ViewDidLoadのステータスバーの白いテキストに次を使用します。

[[[self navigationController] navigationBar] setBarStyle:UIBarStyleBlackTranslucent];

ナビゲーションバー!=ステータスバー。
Michael Peterson

...やってみた!?(はい、ステータスバーの場合)
eirik

7

Plistで、これを追加します。

  • ステータスバーのスタイル: UIStatusBarStyleLightContent
  • コントローラベースのステータスバーの外観を表示します。 NO

7

info.plistで、フィールド値を設定しますNO ビューコントローラベースのステータスバーの外観を設定し、ターゲット>一般設定でステータスバースタイルのライトを設定します。


2
優勝者チキンディナー
tommybananas 2015

7

質問に対する完全な回答をさせてください。ステータスバーのテキストの色を変更するのは非常に簡単ですが、iOS 7では特に初心者のために少し混乱しています。

ストーリーボードで、ビューコントローラーを選択して右側の[シミュレーションメトリック]に移動し、色を黒から白に変更しようとしても、機能せず、理由がわかりません。これはどのように変更しても機能するはずです。

次に、plistにUIViewControllerBasedStatusBarAppearanceプロパティはありませんが、デフォルトではありません。+ボタンをクリックして自分で追加し、NOに設定する必要があります。

iOS 7ステータスバーのテキストの色

最後に、AppDelegate.mファイルに移動して、didFinishLaunchingWithOptionsメソッドに次の行を追加し、次の行を追加する必要があります。

     [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

これにより、すべてのビューコントローラーの色が白に変わります。お役に立てれば!


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