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

标签 ios swift cocoa-touch uitabbarcontroller uitabbar

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

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

所以基本上:

  1. 我选择了一个选项卡,它显示了高亮颜色(红色)。
  2. 我现在选择了另一个选项卡,而我之前选择的选项卡并没有变回之前的颜色(灰色),而是变成了蓝色。

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

我在界面生成器中为我的 UITabBar 设置了图像,并在应用程序委托(delegate)中修改了 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

哪里出了问题?

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

非常感谢您的帮助。

最佳答案

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

    barImage.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

关于ios - UITabBarItem 图像颜色在第一次被选中后变为蓝色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30585062/

相关文章:

objective-c - 循环缓冲录音iOS : Possible?

ios - 自定义事件指示器不起作用( objective-c )

ios单击按钮更改 View

swift - 使用未声明类型 'Response'错误

arrays - Swift:无法使用 removeAtIndex 从数组中删除项目

ios - 如何使用 __block 和完成 block 避免内存泄漏

objective-c - 使用未声明的标识符 : Area and Perimeter of a Rectangle

ios - 如何在iOS中用动画隐藏UITableView的删除按钮?

ios - 没有使用 NEHotspotConfigurationManager 类获取 Wifi 列表

objective-c - UINavigationController 在 TableView 上使用分组?