5

iOS 6でステータスバーの色合いを使用する方法を理解していないようです。この質問を読みました: ステータスバーの色合いの色を変更 しますが、そこで提案されたソリューションを実装しても問題は解決していません。

WWDC 2012の高度な外観のカスタマイズで説明されているように、ターゲットの概要ペインで設定を構成し(スタイルと色合いのデフォルト)、ステータスバーの色合いパラメーターディクショナリをinfo.plistに追加しました。

起動時にステータスバーが正しく色付けされますが、別のView Controllerに移動すると、ステータスバーが黒に変わります。

2番目のViewControllerは、独自のナビゲーションコントローラーに組み込まれています。これが問題の原因でしょうか?

原因が何であれ、アプリケーション全体でステータスバーを一貫して色付けできるソリューションを誰かが提供してくれることを期待しています。

何か説明が必要な場合はお知らせください。また、サポートが必要な場合は事前に感謝します。

4

3 に答える 3

13

今日、私は同じ問題に遭遇しましたが、提案された答えはどれも私を助けませんでした。

自分の色(赤、青、緑、アルファ)を​​定義したので、IBを介してUIStatusBarを追加したくなかったので、1行のソリューションが必要です。

しばらくテストした後、次のことが私のために働いた:

  1. プロジェクトの概要で、ドロップダウンメニューから[ステータスバースタイル][黒の半透明]を選択します。
  2. application: didFinishLaunchingWithOptions:のコード行を入力します。

    self.window.backgroundColor = [UIColor redColor]; //example color

どういうわけか、コードを介してスタイルを設定するときにこれは私にはうまくいきませんapplication: didFinishLaunchingWithOptions:

楽しみ!

于 2013-01-23T17:54:53.843 に答える
1

1つの解決策は、インターフェイスの前に非表示のナビゲーションバーを配置することです。すでにナビゲーションインターフェイスを使用している場合は、UINavigationControllerをサブクラス化する必要がある場合があります。例えば:

UINavigationBar* nav = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,0,320,1)];
nav.tintColor = [UIColor redColor];
nav.alpha = 0;
[self.navigationBar.superview addSubview:nav];

これにより、ナビゲーションバーの色合いや背景色に関係なく、ステータスバーが赤になります。これは、ナビゲーションバーがない場合にも機能します。

クレジットが必要な場合のクレジット。https://stackoverflow.com/a/13587525/341994alphaから0に設定するというアイデアを思いつきました。

于 2013-01-30T20:37:25.883 に答える
0

2番目のViewControllerは、独自のナビゲーションコントローラーに組み込まれています。これが問題の原因でしょうか?

これが問題である可能性が最も高いですが、plistエントリによってグローバルになると思いました。UIAppearanceを使用してプログラムで設定してみましたか(ios6 +のみをサポートしていると想定)?

[[UITabBar appearance] setTintColor:[UIColor redColor]];
于 2012-10-18T23:44:09.513 に答える