【发布时间】:2015-01-24 11:45:30
【问题描述】:
我在谷歌上搜索了很多,但在任何地方都找不到直接和合并的答案。
我想自定义 myUITabBarController,这样:
-
UITabBar本身是全黑的 - 项目标题的文本颜色在非高亮状态下为白色
- 项目标题的文本颜色在高亮状态下为红色
- 在标签栏中使用彩色图标
1。转UITabBar黑色
我猜我需要为此使用UIAppearance API,实际上我可以使用[[UITabBar appearance] setBarTintColor:[UIColor blackColor]]; 将UITbarBar 变为黑色。
2。和 3. 修改项目标题的颜色
但是,文本项的颜色似乎并没有达到我想要的效果,在谷歌搜索之后,以下解决方案对我来说很有意义,但它只会将 non-highlighted 状态更改为白色,突出显示也保持白色......
NSDictionary *titleAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};
[[UITabBarItem appearance] setTitleTextAttributes:titleAttributes forState:UIControlStateNormal];
UIColor *titleHighlightedColor = [UIColor redColor];
NSDictionary *highlightedTitleAttributes = @{NSForegroundColorAttributeName : titleHighlightedColor};
[[UITabBarItem appearance] setTitleTextAttributes:highlightedTitleAttributes forState:UIControlStateHighlighted];
4。五彩的物品
关于多色图标,到目前为止,方法是像这样简单地设置 Storyboards 中的图标:
但这并不能满足我的要求,它只会在未选中该项目时将整个图标显示为灰色。选择项目后,图标完全消失。
这是原来的图标:
这是当项目未被选中时的样子:
这里是在选中状态下,如前所述图标完全消失:
所以,我的问题是我能在多大程度上达到上述要求。我目前缺少什么?我在代码中做所有事情是否比在故事板中更好?
注意:我的目标是高于 7.0 的 iOS 版本,因此如果 iOS 7 和 iOS 8 的行为不同,请提供任何版本特定信息。
【问题讨论】:
标签: ios objective-c uitabbarcontroller uitabbar uitabbaritem