在所选标签栏项目上设置文本颜色

kir*_*mar 9 iphone uitabbar

我已经创建了一个标签栏应用程序.我有四个标签; 在选定的选项卡上,我需要为选项卡标题设置红色.我怎样才能做到这一点?

提前致谢.

Ben*_*ton 24

使用UIAppearance协议(iOS5 +)现在可以实现,实际上非常简单.

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

[UITabBarItem.appearance setTitleTextAttributes:@{
        UITextAttributeTextColor : [UIColor purpleColor] }     forState:UIControlStateSelected];
Run Code Online (Sandbox Code Playgroud)

请原谅可怕的颜色!

  • 谢谢你的回答!对于iOS7 +,UITextAttributeTextColor已被弃用,您现在可以使用NSForegroundColorAttributeName. (3认同)

Gau*_*ana 5

任何正在寻找 Swift 4 解决方案的人..

UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: .red], for: .selected)
Run Code Online (Sandbox Code Playgroud)


Jon*_*ing -1

如果我正确理解你的问题,你想自定义 s 上文本的颜色UITabBarItem。不幸的是,它确实没有那么灵活。如果您打算这样做(除非您在专业人士的帮助下仔细考虑了设计,否则我建议您不要这样做!),您将不得不做一些非常可怕的事情才能使其发挥作用。

我建议迭代子视图UITabBar(根据需要尽可能多的级别),并寻找UILabel对象。如果找到一些,您可以更改它们的颜色。如果不这样做,则意味着它的实现方式不同(可能在-drawRect:某个方法中);如果发生这种情况,你真的应该放弃。

无论您决定做什么,祝您好运。