这很奇怪。我的全局色调已设置,我的图标颜色已设置为我拥有的默认紫色。然而在运行时它是蓝色的。有小费吗?我已经检查过,没有看到其他人有这个问题。

Storyboard:

ios - UITabBar 不改变色调颜色 Xcode 9.3-LMLPHP

运行:

ios - UITabBar 不改变色调颜色 Xcode 9.3-LMLPHP

最佳答案

基本上,当您想以编程方式更改 UITabBar 的色调颜色时,UITabBar 类为您提供了几个色调颜色属性:

  • tintColor : TabBarItem 的颜色。
  • barTintColor : TabBar 的背景栏的颜色。
  • unselectedItemTintColor : 未选中项目的颜色。

  • 所以如果你改变 tintColor ,barItems 的颜色就会改变。

    ...但是,为什么它不适用于 IB?
    当您在 IB 中为 UITabBar 的项目设置特定颜色时,有一个名为 Image Tint 的选项。
    ios - UITabBar 不改变色调颜色 Xcode 9.3-LMLPHP
    更改“查看”部分上的 Tint 选项不会影响 TabBar 的项目,但只有 Image Tint 选项可以更改 tabBar 的项目颜色。
    storyboard 的全局色调选项改变了“查看”部分的 Tint 选项,但不影响 Image Tint 选项的默认值,所以它不会影响标签栏的色调颜色。

    那么.. 为什么 Image Tint 选项不受影响?
    我无法解释为什么它不受影响。也许苹果有这个问题,或者某种错误。

    有一些设置图像颜色的解决方法:
  • 显式地为 UITabBarController 的 TabBar 对象设置一个 Image Tint 选项。

  • 您可能应该设置每个 TabBarControllerImage Tint 选项,因为它不会影响全局设置。
  • 以编程方式更改全局 UITabBar 的 tintColor。

  • AppDelegate.swiftdidFinishLaunchingWithOptions 处,粘贴以下代码
    UITabBar.appearance().tintColor = <#Color what you want#>
    

    10-08 08:06