如何在TVOS中更改焦点上的标签栏项目文本颜色

时间:2015-12-23 10:00:13

标签: uitabbarcontroller uitabbar xcode7.2 swift5 tvos9.1

enter image description here

我在标签栏中有四个项目。

1>看。 (黑色)

2 - ;一经请求。 (黑色)

3>搜索。 (黑色)

4>设置。 (我的颜色)

如何更改标签栏中项目文字的颜色以与其图标颜色相匹配。 (现在在选项卡栏中选择了Performance)

在此输入图片说明

如何更改" 1,2,3"的颜色?标签栏中的文字与其图标颜色相匹配。 (现在在选项卡栏中选择了Performance)

我尝试设置TitleTextAttributes。

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor(red: 255.0/255.0, green: 255.0/255.0, blue: 255.0/255.0, alpha: 1.0),NSFontAttributeName: UIFont(name: "SFUIDisplay-Regular", size: 36.0)!], forState:UIControlState.Normal)
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor(red: 22.0/255.0, green: 209.0/255.0, blue: 237.0/255.0, alpha: 1.0),NSFontAttributeName: UIFont(name: "SFUIDisplay-Regular", size: 36.0)!], forState:UIControlState.Focused)

但我想要它。

enter image description here

这个问题出现在tvos 9.1中。

2 个答案:

答案 0 :(得分:2)

我不确定我是否理解您的问题,但在开发Apple TV应用时遇到了类似问题。

我想要做的是更改标签栏项目的字体颜色。

这就是我结束的事情。首先,我创建了一个UITabBarController子类,并将它喜欢到故事板上的控制器。 然后我在-(void)viewDidLoad

中添加了此代码
for(UITabBarItem * item in self.tabBar.items) {
    [item setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor darkGrayColor]} forState:UIControlStateNormal];
    [item setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor blueColor]} forState:UIControlStateFocused];
}

一切都很顺利。

希望它有所帮助!

答案 1 :(得分:0)

swift 5 解决方案:

override func viewDidLoad() {
    super.viewDidLoad()

    for item in (self.tabBarController?.tabBar.items)! {
        item.setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.white], for: .focused)
        item.setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.lightGray], for: .normal)
    }
}