我已经设置了全局tintColor,并且我可以在界面生成器中看到它,当我选择UITabBar和UITabBarController时,仍然在运行应用程序时,所选UITabBarItem的色调是iOS默认(蓝色),而不是我设置的。我错过了什么?UITabBar tintColor没有改变故事板
P.S. 的UITabBarController推到navigationController,它不是RootViewController的
我已经设置了全局tintColor,并且我可以在界面生成器中看到它,当我选择UITabBar和UITabBarController时,仍然在运行应用程序时,所选UITabBarItem的色调是iOS默认(蓝色),而不是我设置的。我错过了什么?UITabBar tintColor没有改变故事板
P.S. 的UITabBarController推到navigationController,它不是RootViewController的
使用此代码在您的appDelegate
[[UITabBar appearance] setSelectedImageTintColor: [UIColor redColor]];
didFinishLaunchingWithOptions:
方法你想要的颜色替换红色。
如果你是针对iOS的8则
selectedImageTintColor在iOS 8的使用tintColor
斯威夫特
UITabBar.appearance().tintColor = UIColor.redColor()
目标C弃用
[[UITabBar appearance] setTintColor: [UIColor redColor]];
虽然unselectedItemTintColor工作正常,但我在appDelegate中放置了相同的代码但不工作 – nikhil84
Storyboard不直接支持。但是您可以在故事板中设置用户定义的运行时属性。
选择身份检查员。 (在这里你可以设置类观点的看法。)
如果你想改变所选项目的着色颜色代替,只是用selectedImageTintColor
关键路径来代替。
这是一个很好的解决方案,但我不确定为什么它不适用于iOS 10。由Scott工作的代码解决方案很好 –
由Scott工作的解决方案,但它有另一个问题,它改变了tabbar(tabbar上的所有项目)tintColor不是一个选项卡! –
这是真正的赢家。结合我们从两个答案中得到的结果:将关键路径设置为“selectedImageTintColor”而不是“tintColor”,并且不需要代码。 – winfred
在我的应用程序中,我希望每个ViewController在呈现时都具有唯一的TabBarItem颜色。
在iOS系统8中,人工添加在故事板一个tintColor属性的工作得很好,但不再有8.
我通过包括解决了这个问题的iOS下9/Xcode的任何影响在我的每个TabBarController的子ViewControllers中重写每个ViewDidAppear()函数中的代码。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.tabBarController?.tabBar.tintColor = UIColor.whateverColor
//The rest of your code
}
这是在任何ViewController安全,由于?在tabBarController调用之后。如果ViewController未嵌入到TabBarController中,则整个行将被忽略。
通过将此代码放置在每个VC中,您可以轻松地指定每个TabBarItem的颜色。
很棒!谢谢。 – Dean
我的荣幸@Dean!不推荐使用iOS setSelectedImageTintColor中的 –
,应该使用tintColor代替。Swift版本: UITabBar.appearance()。tintColor = UIColor.red – Jurasic