なおさんのブログ

iOSエンジニアのブログのはずがいろいろ書いてます。

iOS15でNavigationBarとTabBarのカラーを変更する

はじめに

iOS14までは普通に動いていたのにiOS15だとNavigationBarとTabBarのカラーがおかしくなってしまったので調べてみました

NavigationBarについて

現行の書き方

UINavigationBar.appearance().barTintColor = .white

どうやらこの書き方ではダメのようです

iOS15以降ではUINavigationBarAppearanceを使って指定する必要があります

let appearance = UINavigationBarAppearance()
appearance.backgroundColor = .white
appearance.titileTextAttributes = [.foregroundColor: UIColor.black]  // タイトル文字色の変更する場合

UINavigationBar.appearance().standardAppearance = appearance
UINavigationBar.appearance().scrollEdgeAppearance = appearance

この書き方で正しく動作するようになりました

TabBarについて

TabBarのほうは特にカラーを変更するようなコードは書いてなかったんですがおかしくなりました。

iOS15では同様にUITabBarAppearanceを使って指定する必要があります

let appearance = UITabBarAppearance()
appearance.backgroundColor = .white
UITabBar.appearance().standardAppearance = appearance
UITabBar.appearance().scrollEdgeAppearance = appearance

結論

これで無事にiOS15でもNavigationBarとTabBarのカラーが正しく出るようになりました。 良かった。

参考資料

shtnkgm.com