我想为未选中状态的UITabBarItem
标题文字和图片设置不同的颜色。
对于选定状态,我可以这样做:
[[UITabBar appearance] setTintColor:[UIColor purpleColor]]; // image color
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName: [UIColor orangeColor] } forState:UIControlStateSelected]; // text color
对于未选择状态,我正在尝试以下方法:
[[UITabBar appearance] setUnselectedItemTintColor:[UIColor blueColor]]; // image color
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName: [UIColor redColor] } forState:UIControlStateNormal]; // text color
但出于某种原因,unselectedItemTintColor
设置会覆盖我尝试设置的titleTextAttributes
- 所以在上面的代码段中,文本和图片都显示为蓝色。
我也尝试在创建titleTextAttributes
之后直接更改UITabBarItem
(而不是使用appearance
),但这似乎没有效果。< / p>
如何实现不同的未选择颜色?有可能吗?
答案 0 :(得分:2)
我在发布后不久就设法解决了这个问题。事实证明,虽然使用unselectedItemTintColor
设置UIAppearance
会覆盖项目的titleTextAttributes
,但如果您直接在标签栏上设置unselectedItemTintColor
,一切正常。
所以而不是
[[UITabBar appearance] setUnselectedItemTintColor:[UIColor blueColor]];
只是做
[self.myTabBarInstance setUnselectedItemTintColor:[UIColor blueColor]];