Iganinのブログ

日頃の開発で学んだ知見を中心に記事を書いています。

【iOS】iOS SDK 13 以上でのビルド時に ダークモード非対応とする際の注意点

はじめに

iOS 13からダークモードが導入されてしばらく経ちました。 iOS SDK 13以上(Xcode 11以上)でビルドする場合、ダークモード非対応とする場合はそれ用の対応が必要です。 対応に漏れが発生しかけたので備忘をかねて記載します。

環境設定

以下の環境を使用しています。

内容

基本的にはダークモード対応しない場合は、Info.plistにてUser Interface StyleLigntに設定すれば完了です。ただ、歴史のあるアプリですと View controller-based status bar appearanceNOとなっている場合があります。

f:id:Iganin:20200207010555p:plain

View controller-based status bar appearanceNOの場合はStatus Barの表示が User Interface Styleではなく、 プロジェクト設定のGeneral > Deployment > Status Bar Style に依存することになります。

f:id:Iganin:20200207005835p:plain

この設定がDark Contentとなっていれば良いのですが、 DefaultやLight Contentの場合はStatus Bar が白くなってしまい、下の画像のような表示になってしまいます。

f:id:Iganin:20200207010104p:plain

薄ら白く見えますが、非常に見えづらくなっています。

このような状態は User Interface StyleLight にすると同時に View controller-based status bar appearance を YESに変更することで解消することができます。

まとめ

ダークモード非対応とする際は、 User Interface Style の値を設定するだけではなく、 Status Bar の表示に関する設定も適したものになっているか確認した方が良さそうです。