2017-09-11 6 views
1

tintColorをタブバーの1つのtabBarItemに設定しようとしています。Swift内の1つのtabBarItemにtintColorを設定する

現在、私が持っている:

self.tabBar.tintColor = darkGrey 
self.tabBar.unselectedItemTintColor = grey 

私は私のタブバーで5 tabBarItems(テキストなし)を持っていると私は項目が選択されたときに青色で最初のものを設定したいと思います。

どうすればいいですか?

答えて

1

UITabbarItemを選択し、ランタイムアトリビュート 'selectedImage'を追加し、 'Image'としてタイプを選択し、イメージの名前を値として指定します。

enter image description here

またはコードによって。

UITabBar *tabBar = self.tabBar; 

UITabBarItem *targetTabBarItem = [[tabbar items] objectAtIndex:0]; // 
whichever tab-item 
UIImage *selectedIcon = [UIImage imageNamed:@"name-of-selected- 
image.png"]; 
[targetTabBarItem setSelectedImage:selectedIcon]; 
2

tabBarItemごとに個別に設定する必要があります。 このコードをviewDidLoad()に配置することにより、特定のタブのタブバーの色を変更できます。

//setting your tabBarItem to blue when selected 
self.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.blue()], for:.selected) 
+0

は、私は、テキストを持っていないので、それは働いていない:/ – KevinB

+0

あなたが画像を使用している場合はうーん、私はそれはあなたのために簡単かもしれないと思いますプログラムカラーでオーバーライドする代わりに資産の色を変更し、元の画像としてレンダリングする –

1
あなたはストーリーボード
映像の色合いに編集することができます

選択アイコンの色が
背景
色合いはの色であるタブバーの色でありますアイコン


以下の画像をチェック

https://i.stack.imgur.com/7Jnwy.png

+0

私は、ちょうど1つのタブバー項目に対してその色合いが欲しいと言った。 – KevinB

+0

は怒ってはいけない:)これを試してください。 ** 'オーバーライドviewWillAppear(_アニメーション:ブール値)FUNC { super.viewWillAppear(アニメーション) self.tabBarController .tabBar.barTintColor = UIColor.red ?}' ** – dhin

0

特定のタブの色合いを変更するだけであれば、これが役立ちます。ここで

var tab1 : UITabBarItem = self.tabBar.items![0] as UITabBarItem 
tab1.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.gray], for: .normal) 

//For Image 
tab1.image = UIImage(named: "imageName")!.withRenderingMode(.alwaysOriginal) 
+0

あなたがない場合は、TAB1を作成するのはなぜこれを使って ? – KevinB

+0

@Kevinb彼の意図は明らかにtab1.tintColorを設定することでした。 – Connor

+0

はい、私は@connorに同意します –

0

別の方法である:

self.tabBar.tintColor = UIColor.red 
let tabSelected = self.tabBar.selectedItem! 
tabSelected.selectedImage = #imageLiteral(resourceName: "second") 
関連する問題