はじめに
iOS 13からダークモードが導入されてしばらく経ちました。 iOS SDK 13以上(Xcode 11以上)でビルドする場合、ダークモード非対応とする場合はそれ用の対応が必要です。 対応に漏れが発生しかけたので備忘をかねて記載します。
環境設定
以下の環境を使用しています。
内容
基本的にはダークモード対応しない場合は、Info.plistにてUser Interface Style
をLignt
に設定すれば完了です。ただ、歴史のあるアプリですと View controller-based status bar appearance
が NO
となっている場合があります。
View controller-based status bar appearance
が NO
の場合はStatus Bar
の表示が User Interface Style
ではなく、 プロジェクト設定のGeneral > Deployment > Status Bar Style に依存することになります。
この設定がDark Contentとなっていれば良いのですが、 DefaultやLight Contentの場合はStatus Bar が白くなってしまい、下の画像のような表示になってしまいます。
薄ら白く見えますが、非常に見えづらくなっています。
このような状態は User Interface Style
を Light
にすると同時に View controller-based status bar appearance
を YESに変更することで解消することができます。
まとめ
ダークモード非対応とする際は、 User Interface Style
の値を設定するだけではなく、 Status Bar の表示に関する設定も適したものになっているか確認した方が良さそうです。