我需要将UITabBar的选择颜色从默认蓝色更改为红色。我们怎么做。
答案 0 :(得分:55)
2017年9月更新 我写这个答案已经两年了,因为它经常收到upvotes,我应该说这可能是这个问题最糟糕的答案,它容易出错,因为iOS更新,很难调试等等可能会破坏。所以请不要做我写的东西,并应用更好的解决方案,如子类化UITabBar或UITabBarController。谢谢。
您可以通过为UITabBar设置“tintColor”属性(键路径)来完成此操作。
答案 1 :(得分:19)
在IOS5中,UITabBar具有selectedImageTintColor属性,可以满足您的需求。
答案 2 :(得分:15)
在iOS 7中,它只是tintColor。实现此目的的一种方法是子类UITabBarViewController,在storyboard中设置自定义类,并在子类tabBarVC的viewDidLoad
方法中添加:
[[self tabBar] setTintColor:[UIColor redColor]];
答案 3 :(得分:11)
非常容易
创建 UITabBarController 的自定义类,并在-(void)viewDidLoad
方法中添加以下行:
[[self tabBar] setSelectedImageTintColor:[UIColor greenColor]];
答案 4 :(得分:6)
因为在iOS 7中不推荐使用UITextAttributeTextColor,所以你应该使用:
[UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor greenColor]} forState:UIControlStateNormal];
[UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor purpleColor]} forState:UIControlStateSelected];
答案 5 :(得分:5)
只需在Interface Builder中为TabBar更改以下属性
显然,在我的情况下是白色。
答案 6 :(得分:5)
要达到上述结果,请执行以下步骤。
第1步:在Assets.xcassets
中添加您想要的图片,并确保他们Render As
:Default
第2步:选择UITabBar
对象并设置Image Tint
颜色,此颜色将被选中标签颜色
第3步:选择UITabBar
对象并添加关键路径:unselectedItemTintColor
,类型:{{1 用户定义的运行时属性中的<}>,值:Color
。
全部完成。
答案 7 :(得分:4)
SDK不会让这很容易,但技术上可能。 Apple显然认为这是他们对外观和感觉一致的愿景的一部分。
UITabBar是UIView的子类。您始终可以继承并实现自己的-drawRect:
这不是一项微不足道的任务,但是,你必须从头开始重新实现这个类,否则你会冒一些奇怪的副作用。
答案 8 :(得分:3)
我一直在寻找一种方法来设置UITabBarItem的选定文本颜色,并使用UIAppearance协议找到了一种简单的死方法。
[UITabBarItem.appearance setTitleTextAttributes:@{
UITextAttributeTextColor : [UIColor greenColor] } forState:UIControlStateNormal];
[UITabBarItem.appearance setTitleTextAttributes:@{
UITextAttributeTextColor : [UIColor purpleColor] } forState:UIControlStateSelected];
请原谅那些可怕的颜色!
答案 9 :(得分:2)
从iOS 8开始,它很简单:
UITabBar.appearance().tintColor = UIColor.redColor()
答案 10 :(得分:2)
在Swift 5中非常简单。
在您的TabBarController
中写下:
tintColor = UIColor.red
就这样
答案 11 :(得分:1)
iOS 5.0修复此问题,但解决方案是在NDA下。在您的文档中查找UITabBar,以便轻松地执行您想要执行的操作。
答案 12 :(得分:0)