web-dev-qa-db-ja.com

iPhone6ステータスバーの色

IPhone 6シミュレータのステータスバーの色が正しいスタイルを使用していないことに気付いた人はいますか?

UIStatusBarStyleUIStatusBarStyleLightContentに設定し、UIViewControllerBasedStatusBarAppearanceNOに設定しました。

これは、6および6Plusを除くiOS8上のすべての電話で正常に機能します。 appDelegateでは、UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false)を使用して設定できますが、起動画面には設定されません。明るいコンテンツが欲しいときはまだ暗いが欲しいです。誰かがこれを修正していますか? plistを追加する必要がある新しいアイテムはありますか?

23
smitt04

1つのオプションは、plistでUIViewControllerBasedStatusBarAppearanceYESに設定し、各ViewControllerでこのメソッドを使用することです。

- (UIStatusBarStyle) preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

それはお尻の痛みであり、間違いなく最高の解決策ではありません。現状では、これは私のすべてのView Controllerで機能しますが、1つを除いて、これに対する代替ソリューションをまだ探しています。

[〜#〜]編集[〜#〜]

より良い解決策を見つけました。 plistにUIViewControllerBasedStatusBarAppearanceからNOおよびStatus bar styleからUIStatusBarStyleLightContentを保持し、画像アセットから+ -> New Launch Imageを選択して正しい起動画像を追加します。これにより、iPhone 6/6 +がアプリを画面サイズに拡大するのを防ぎ、ライトステータスバーを表示します。正しい画面サイズは次のとおりです。

iPhone 4/4S: 640x960 px
iPhone 5/5S: 640x1136 px
iPhone 6:    750x1334 px (edited)
iPhone 6+:   1242x2208 px

私はこれを信用することはできません、ただそれがうまくいったことを証言します。ここで私は解決策を見つけました https://stackoverflow.com/a/25985800/3247035 そして http://beageek.biz/how-to-create-launch-images- app-xcode-ios /

15
pfryerda

私は同じ問題を抱えていて、

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setNeedsStatusBarAppearanceUpdate];
}

-(UIStatusBarStyle)preferredStatusBarStyle{
    return UIStatusBarStyleLightContent;
}

私は怠け者なので、それを追加するコントローラーを作成し、他のすべての人はそれを継承します

7
Lova

この投稿 に応じてこれについても言及しましたが、私が見つけた唯一の回避策は、iPhone6および6以降のアセットを使用するようにアプリを変換することです。

アセットマネージャーで正しいサイズのロード画面アセットを指定すると、アプリはステータスバーのスタイル設定を尊重します。

から https://developer.Apple.com/library/iOS/documentation/userexperience/conceptual/mobilehig/LaunchImages.html

For iPhone 6:

750 x 1334 (@2x) for portrait
1334 x 750 (@2x) for landscape

For iPhone 6 Plus:

1242 x 2208 (@3x) for portrait
2208 x 1242 (@3x) for landscape

また、ステータスバーのスタイルをUIStatusBarStyleLightContentに設定していることを再確認する必要があります。これは2つの方法で行うことができます。

  • アプリケーションのinfo.plistで、UIStatusBarStyle = UIStatusBarStyleLightContentを設定します
  • プロジェクト内の該当するすべてのUIViewControllerでメソッドpreferredStatusBarStyle:をオーバーライドします。 (このオプションでは、アプリケーションのinfo.plistにUIViewControllerBasedStatusBarAppearance = YESがあることを確認してください)
1
Aaron Wasserman

pfryerdaの答えは正しいです。起動イメージが問題の解決策です。知らないうちに問題を修正しました。 [一般情報]タブの新しいLaunch Screen Fileセクションを使用し、起動画面を独自の個別のストーリーボードに設定しました。ストーリーボードで、フルスクリーンにサイズ変更されたビューを作成しましたが、起動画面が常に適切なサイズであるため、この問題が発生していることがわかりました。

起動画面のストーリーボードを作成する方法を要約すると、次のようになります。

  1. LaunchScreen.storyboardという名前の空のストーリーボードファイルを作成します。

  2. ターゲット設定に移動し、[全般]タブで、起動画面ファイルとしてストーリーボードを選択します。 Xcodeは、対応するUILaunchStoryboardNameキーをアプリのInfo.plistに追加します。このキーが存在する場合、Xcodeは、設定した起動イメージよりもこのキーを優先します。

  3. ビューコントローラシーンをストーリーボードに追加します。シーンにいくつかのサブビューを追加し、制約付きで配置します。デバイスでアプリを起動すると、OSはそのシーンを起動画面として使用する必要があります。

詳細については、こちらをご覧ください: http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/

0
smitt04