UITabBar色彩不适用于图像

时间:2015-01-05 21:52:43

标签: ios8 uitabbar uiappearance

我有一个UITabBar设置了Interface Buider,只有在我没有设置全局应用色调的颜色时,图像突出显示才能正常工作:

tab bar without tint color

当我使用

设置应用的全局色调颜色时
[[UIView appearance] setTintColor:[TAStyleKit tintColor]];

然后所有选项卡图像显示为已选中。

enter image description here

只有当我点击标签然后再返回时,它们才有正确的颜色。注意"武器"选项卡是灰色的:

enter image description here

我做错了什么?

3 个答案:

答案 0 :(得分:10)

编辑:别介意我之前写过的内容,看起来你只需要更改以下内容......

[[UIView appearance] setTintColor:[TAStyleKit tintColor]];

要...

[[UITabBar appearance] setTintColor:[TAStyleKit tintColor]];

请注意,您尝试更改UIView的外观而不是UITabBar。我在一个项目中运行它,它就是诀窍。

enter image description here

enter image description here

Swift 4.0

UITabBar.appearance().tintColor = UIColor.redTAStyleKit.tintColor

答案 1 :(得分:5)

当你不能或不想删除基本的UIView.tintColor代码时,这可能是更好的一个。只需将标签栏内UIViews上的tintColor设置为默认的灰色。

let view = UIView.appearance()
view.tintColor = UIColor.redColor()

let viewsInTabBar = UIView.appearanceWhenContainedInInstancesOfClasses([UITabBar.self])
viewsInTabBar.tintColor = UIColor(white: 144.0 / 255.0, alpha: 1) // default gray for inactive items

let tabBar = UITabBar.appearance()
tabBar.tintColor = UIColor.redColor() // actual highlight color

不幸的是,苹果没有使用其标准灰度值之一......

答案 2 :(得分:0)

也可以通过为UITabBar设置图像色调从故事板[XCode 10.1]直接设置 enter image description here