web-dev-qa-db-ja.com

UITabBarの選択色を変更する方法

UITabBarの選択色をデフォルトの青から赤に変更する必要があります。どのようにこれを行うのですか?.

35
saikamesh

2017年9月更新:この回答を書いてから2年が経過し、定期的に賛成票を受け取っているので、これがおそらく最悪の回答だと言えるでしょう。この質問には、エラーが発生しやすく、iOSの更新やデバッグが難しいなどの理由で壊れる可能性があるため、私が記述したことを行わず、UITabBarまたはUITabBarControllerのサブクラス化などのより良いソリューションを適用してください。ありがとう。

これを行うには、UITabBarの「tintColor」属性(キーパス)を設定します。

  1. ドキュメントのアウトラインでUITabBarを選択します。 ([〜#〜]ではありません[〜#〜]黄色のアイコンが付いたコントローラ。)
  2. ユーティリティ領域でIdentity Inspectorを選択します。
  3. 「ユーザー定義ランタイム属性」の+をクリックします。
  4. タイプ「カラー」の「tintColor」キーパスと必要なカラーを追加します。

これでうまくいくはずです。以下のスクリーンショットで確認できます。

enter image description here

これについての詳細:UITabBarのIdentity Inspectorに「Tint」属性がありますが、これはまったく同じことをすると信じていましたが、何もしません。そのデフォルト値は、UITabBarItemが選択されたときの正確なデフォルトの塗りつぶし色です。そのため、安定版リリースのXcode 7で修正されると思います。

57
Behdad

IOS5では、UITabBarには selectedImageTintColor プロパティがあり、必要な処理を実行します。

19
Daniele Grassi

IOS 7では、これは単にtintColorです。これを実現する1つの方法は、UITabBarViewControllerをサブクラス化し、ストーリーボードにカスタムクラスを設定し、サブクラス化されたtabBarVCのviewDidLoadメソッドに以下を追加することです。

[[self tabBar] setTintColor:[UIColor redColor]];
15
Kyle Clegg

とても簡単です

ITabBarControllerのカスタムクラスを作成し、-(void)viewDidLoadメソッドに次の行を追加します。

[[self tabBar] setSelectedImageTintColor:[UIColor greenColor]]; 
11
Daniel

enter image description here

上記の結果を得るには、次の手順を実行します。

ステップ1:Assets.xcassetsに目的の画像を追加し、それらがRender Asであることを確認します:Default

enter image description here

ステップ2:UITabBarオブジェクトを選択し、Image Tintの色を設定します。この色がタブの色として選択されます

enter image description here

ステップ3:UITabBarオブジェクトを選択し、Key PathunselectedItemTintColorTypeColorValueChoose color for unselected item inUser Defined Runtime Attributes

enter image description here

すべて完了。

8
Zaid Pathan

UITextAttributeTextColorはiOS 7では非推奨であるため、以下を使用する必要があります。

[UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor greenColor]} forState:UIControlStateNormal];    
[UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor purpleColor]} forState:UIControlStateSelected];
6
Gabriel.Massana

TabBarのInterface Builderで次のプロパティを変更するだけです

私の場合は明らかにその白です。

5
Vrutin Rathod

SDKはこれを容易にしませんが、技術的には可能です。 Appleどうやら、これは一貫したルックアンドフィールのビジョンの一部であると信じています。

UITabBarはUIViewのサブクラスです。いつでも独自の-drawRect:をサブクラス化して実装できます

これは簡単な作業ではありませんが、基本的にクラスを最初から再実装する必要があります。そうしないと、奇妙な副作用が発生する可能性があります。

4
amattn

私はUITabBarItemの選択されたテキストの色を設定する方法を探していて、UIAppearanceプロトコルを使用して、非常にシンプルなメソッドを見つけました。

[UITabBarItem.appearance setTitleTextAttributes:@{
        UITextAttributeTextColor : [UIColor greenColor] } forState:UIControlStateNormal];

[UITabBarItem.appearance setTitleTextAttributes:@{
        UITextAttributeTextColor : [UIColor purpleColor] }     forState:UIControlStateSelected];

ひどい色はごめんなさい!

3
Ben Clayton

IOS 8以降、次のように簡単です。

UITabBar.appearance().tintColor = UIColor.redColor()
2
Andrey Gordeev

iOS 5.0ではこの問題は修正されていますが、解決策はNDAの下にあります。ドキュメントでUITabBarを調べて、やりたいことを簡単に実行できます。

1
Ethan Allen

私は最も簡単な解決策を見つけました-

  1. タブバーコントローラーでタブバーを選択

  2. 画像の色合いの設定

  3. 色合いを設定

参考のため、添付の画像をご覧ください。

enter image description here

0
Sachin Nautiyal