UITabBarItem 图像颜色在第一次被选中后变为蓝色

Posted

技术标签:

【中文标题】UITabBarItem 图像颜色在第一次被选中后变为蓝色【英文标题】:UITabBarItem image colour changes to blue after first time it is selected 【发布时间】:2015-06-01 23:38:02 【问题描述】:

我在使用 UITabBar 时遇到了这个问题。

我有用于 UITabBarItems 的自定义图像,在我选择一个选项卡后,会显示正确的突出显示颜色,但图像的原始颜色(灰色)不再是灰色。它不是蓝色的。

所以基本上:

    我选择了一个选项卡,它的突出显示颜色(红色)显示。 我现在选择另一个选项卡,我之前选择的选项卡不会变回之前的颜色(灰色),而是变成蓝色。

我没有在应用程序的任何地方设置蓝色,所以我认为它是默认颜色。

我已经在界面生成器中为我的 UITabBar 设置了图像,并在应用程序委托中修改了 barTintColour。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
    // Override point for customization after application launch.
    let color = UIColor(red: 41.0/255.0, green: 40.0/255.0, blue: 39.0/255.0, alpha: 1.0)
    UITabBar.appearance().barTintColor = color // works
    UITabBar.appearance().tintColor = UIColor.greenColor() //does nothing

可能做错了什么?

这是我的标签栏的图像。如您所见,我之前和当前都在设置齿轮页面上选择了相机、对话泡泡和信封。只有一个标签我没有选择,它仍然是原来的颜色。这是图像的颜色。

不胜感激,谢谢。

【问题讨论】:

UITabBar.appearance().tintColor = UIColor.greenColor() 为我工作。 【参考方案1】:

你需要告诉系统保持原来的渲染模式,所以当你在标签栏上设置图像时它不会使用默认颜色。像这样的东西

    barImage.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

【讨论】:

我使用的课程覆盖了我的设置,这就是为什么这不起作用。我不得不去上课并更改渲染模式。谢谢

以上是关于UITabBarItem 图像颜色在第一次被选中后变为蓝色的主要内容,如果未能解决你的问题,请参考以下文章

获取未选中状态的 uitabbaritem 的颜色?

更改默认“未选择”UITabBarItem 图像颜色

获取 UITabBarItem 图像的默认未选择 TintColor

如何更改选中和未选中的标签栏图像颜色

tabbar选中按钮的标题颜色和字体

更改 UITabBarItem 图像的颜色