1

タブ付きバー アプリケーションがあり、ステータス バーの色合いがデフォルトに設定されているため、アプリ全体で常に選択した青色になります。

ただし、あるビューでは、次のようにナビゲーション バーを非表示にしています。

[self.navigationController setNavigationBarHidden:YES];

これはviewWillAppearメソッド内にあり、アプリのタブの 1 つであるため、ビューにアクセスできます。

非表示にする理由は、その場所にツールバー (約 6 つのボタン) を配置したいからです。

ツールバーの色合いを設定しましたが、このビューのステータス バーは常に黒です。このビューのステータス バーを再設定する方法はありますか、またはステータス バーの色合いを保持するためにナビゲーション バーを非表示にするより良い方法はありますか。

更新色合いがデフォルトに設定されている場合、ステータスバーの色はヘッダーの最も低いピクセルの色になることをどこかで読みました。

ストーリーボードでナビゲーション バーを非表示にしてみました。また、色合いを「カスタム」に変更しようとしましたが、これも効果がありませんでした。

これらの 2 つのスクリーンショットは、私の問題を示している可能性があります。ナビゲーション バーを切り替えると、ステータス バーの色が変わります。これは、問題のビューが埋め込まれているナビゲーション コントローラーです。

ナビゲーション バーあり - 青いステータス バーナビゲーション バーなし - 黒のステータス バー

4

3 に答える 3

6

ああ!!! 私には実用的な解決策があります...非常に汚くて間に合わせの解決策ですが。

  1. ストーリーボードでナビゲーションバーを非表示にするだけです(問題の画像に示されているように、チェックを外しShows Navigation Barます)。
  2. ナビゲーションバーをビューにドラッグします。
  3. Alpha0に設定し、チェックを外しますUser Interaction Enabled-非表示にしないでください
  4. 次の図に示すように、ナビゲーションバーが上部にあることを確認します。

    画面キャプチャ

このようにして、ステータスバーはナビゲーションバーを表示せずに正しい色を選択します。

うまくいけば、これを行うためのより回復力のある/より良い方法は、最近のXcodeアップデートにあります。

ヒント:ツールバーをナビゲーションバーのように見せるために:

  1. ツールバー-1をY軸に配置します
  2. 高さ44ピクセル、幅320ピクセル、位置0,0のラベル(テキストなし)を作成します。これがタブバーの下の境界線になります。最良の結果を得るには、アプリのページのスクリーンショットを撮り、ソフトウェアを使用して境界線の色を取得します。これは、影が始まる前のタブの最も暗い部分です(この色をラベルの背景として使用します)。
于 2012-11-27T15:30:50.293 に答える
1

iOS 6.0 を使用している場合は、plist ファイルを使用してステータス バーの色を設定できます。参照 - iOS 6 でステータス バーの色合いを設定する方法

iOS 6 リリース ノートより。

ステータスバー

アプリの Info.plist ファイルでステータス バーの色合いのパラメーターを設定できるようになりました。これを行うと、起動時にステータス バーの色がアプリのナビゲーション バーの色と一致するようになります。ステータス バーの色合いを設定するには、Info.plist ファイルに UIStatusBarTintParameters キーを追加します。このキーの値は、アプリの起動時に表示されるナビゲーション バーを表す適切な値を持つ辞書です。ディクショナリ内には、ディクショナリでもある値を持つ UINavigationBar キーが必要です。このディクショナリには、最初のナビゲーション バーのスタイル (Style キーを使用) が含まれており、それが半透明かどうか (Translucent キーを使用) が示されます。ナビゲーション バーの色合い (TintColor キーを使用) またはカスタム背景画像の名前 (BackgroundImage キーを使用) を指定することもできます。

[編集]

iOS 6 では、ステータス バーの色はナビゲーション バーの色によって自動的に決定されるようです。ナビゲーション バーを非表示にする前に、ナビゲーション バーの色をデフォルトに設定して、違いがあるかどうかを確認できます。

于 2012-11-27T14:49:50.650 に答える
0
Change statusBarStyle of application-
[[UIApplication sharedApplication] 
      setStatusBarStyle:UIStatusBarStyleDefault animated:NO];
于 2012-11-27T13:32:46.403 に答える