45

Xcode 6 GM で iOS 7 アプリを iOS 8 に変換しようとしています。iOS 8 を搭載した iPhone 5s 以下のシミュレーターで実行すると問題ありませんが、iPhone 6 および 6 Plus シミュレーターではステータス バーいつでもどこでもそうであるように、白ではなく黒のテキストがあります。Xcode を使用して Info.plist UIStatusBarStyle を「透明な黒のスタイル (アルファ 0.5)」に設定しましたが、他の場所でも目的の効果が得られるようです。何が起こっているのですか?

(絵コンテにはまだ触れていませんが、それで何かできるのでしょうか? しばらく延期できることを望んでいました:)

4

14 に答える 14

50

だからここに私がそれを修正した方法があります

PLIST ビュー コントローラー ベースのステータス バーでは、ステータス バーのスタイルはありません UIStatusBarStyleLightContent

In AppDelegate DidFinishLaunching

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
    [self.window setBackgroundColor:[UIColor whiteColor]];

各View Controller内

- (UIStatusBarStyle) preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}
于 2014-09-22T17:50:48.947 に答える
16

私のアプリのステータスバーは、プロジェクト/ターゲット設定のみを使用して iOS 7 で正常に動作していました:

Status bar style = UIStatusBarStyleLightContent

View controller-based status bar appearance = NO

しかし、iOS 8 (iPhone 6 および iPhone 6 Plus シミュレーター) では、ステータス バーが表示されませんでした。ビュー コントローラー ベースのステータス バーの外観を YES に変更し、以下を追加します。

    // Objective C
    - (UIStatusBarStyle) preferredStatusBarStyle {
         return UIStatusBarStyleLightContent;
    }
    //Swift
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.LightContent
    }

ViewController に接続すると、再び白いステータス バーが表示されますが、それは最初のルート コントローラーが起動した後でのみです。最初の起動中、ステータス バーは黒のままです。

于 2014-09-19T15:31:29.070 に答える
15

同様の回答 (現在は 2 番目に投票) が既に投稿されています。この投稿を最新の状態に保つために購入してください。これがSwiftバージョンです。

  1. コントローラーベースのステータスバーの外観を表示するという行を info.plist ファイルに追加し、そのブール値をNOに設定します。

  2. AppDelegate.swiftファイルに、次のメソッドを追加します func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { UIApplication.sharedApplication().statusBarStyle = .LightContent return true }

  3. この手順を実行する必要はありませんでした (つまり、手順 1 と 2 を実行すればうまくいく可能性があります)。そうでない場合は、次のメソッドを各ViewControllersに追加してみてください。

    override func preferredStatusBarStyle() -> UIStatusBarStyle { return UIStatusBarStyle.LightContent }

これがお役に立てば幸いです。

ロイク

于 2014-12-18T10:36:29.950 に答える
7
  1. Info.plistを開く
  2. 「コントローラーベースのステータスバーの外観を表示する」(ブール値)という新しいプロパティを追加し、その値を「NO」に設定します
  3. 「ステータス バー スタイル」(文字列) という新しいプロパティを追加し、その値を「不透明な黒のスタイル」に設定します。

終わり。

于 2015-08-10T12:51:46.053 に答える
6

AppDelegatedidFinishLaunchingWithOptions:メソッドに次の行を追加します

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:NO];
于 2014-09-26T11:55:09.250 に答える
3

シミュレータに問題がある可能性があります。これを使用して、特定のビュー コントローラーのデフォルトのステータス バーまたはステータス バーをオーバーライドします。

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.LightContent
} //This is swift code
于 2014-09-16T13:05:49.390 に答える
2

カテゴリを使用して基本クラスの動作をオーバーライドするのが悪いスタイルであることは知っていますが、これは機能し、修正するための最も簡単な解決策になる可能性があります。

ステップ #1:アプリケーションの plist ファイルでUIViewControllerBasedStatusBarAppearanceorView controller-based status bar appearanceが設定されていることを確認します。YES

ステップ #2: 次のコードをプロジェクトに追加します。

@implementation UIViewController (StatusBarColorFix)

- (UIStatusBarStyle) preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

@end
于 2014-10-06T13:59:35.927 に答える
1

これに対する適切な修正は、iPhone 6 モデルで使用される新しい起動イメージ nib サポートを使用することです。iOS 8 にはバグがあり、iPhone 6 モデルは起動時にステータス バーのスタイルを正しくチェックしないようですが、起動ニブを追加すると解決します。

Aaron Wasserman が指摘したように、iPhone 6 および 6+ の起動 PNG を指定することもできます。正しく設定すれば、問題も解決するようです!

于 2014-10-10T13:31:15.003 に答える
0

ストーリーボードでルート ビュー コントローラーを選択し、ステータス バー タイプをデフォルトに設定します

于 2014-12-16T04:36:53.307 に答える