【Swift5】UITabBarの文字の色・フォントを一括変更する方法【Objective-C】

2020年8月26日

UITabBarの文字の色・フォントを一括変更する方法をご紹介します。

UITabBarの画像・文字の色はデフォルトでは単色です。
また、選択時は青、未選択時はグレーがデフォルトカラーとなっています。

今回ご紹介する方法ではUITabBarの文字の色・フォントを選択時・未選択字でそれぞれ一括変更する方法になります。

簡単に変更が可能ですが、文字の色やフォントの変更だけで、アイコン画像の色は変更できません。このままだったりとデザインの幅は狭いです。
少し面倒ですがUITabBarの画像・文字の設定は以下の方法で設計するのがオススメです。

オススメ
・UITabBarの画像・文字の色・フォントを個別に設定する方法

UITabBarの文字の色・フォントを一括変更する方法

Swift5

// 文字の選択時・未選択時の色・フォントを指定(フォントは最初に指定したものが優先される)
UITabBarItem.appearance().setTitleTextAttributes( [ .font : UIFont.init(name: "HelveticaNeue-Bold", size: 10),
                                                    .foregroundColor : UIColor.blue ],
                                                  for: .normal)
UITabBarItem.appearance().setTitleTextAttributes( [ .font : UIFont.init(name: "HelveticaNeue-Bold", size: 10),
                                                    .foregroundColor : UIColor.red],
                                                  for: .selected)

Objective-C

 // 文字の選択時・未選択時の色・フォントを指定(フォントは最初に指定したものが優先される)
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:10.0f],
                                                     NSForegroundColorAttributeName : [UIColor blueColor]}
                                         forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:10.0f],
                                                     NSForegroundColorAttributeName : [UIColor redColor]}
                                         forState:UIControlStateSelected];

UITabBarの文字の色・フォントを一括変更する方法はとても簡単ですね。

ですが、これでは文字の色・フォントしか変更できず、画像の色までは変更できません。
おしゃれでカッコいいデザインを目指すのであればこのままではいけませんね。

そこで、画像の選択時・未選択時、文字の選択時・未選択時を細かく設定できる方法をご紹介します。おそらくUITabBarのカスタマイズの中ではこの方法がベストプラクティスだと思います。

オススメ
・UITabBarの画像・文字の色・フォントを個別に設定する方法

UITabBarControllerを使用したUIのアプリを作る際はこの方法を使用して作成しておけば間違いないでしょう!ぜひ参考にしてみてください!

関連記事