UITabBar不会更改色彩颜色Xcode 9.3

时间:2018-07-12 21:35:15

标签: ios iphone swift xcode uitabbarcontroller

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

故事板:

StoryBoard

运行时间:

Run Time

2 个答案:

答案 0 :(得分:3)

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

  • tintColorTabBarItem的颜色。
  • barTintColorTabBar的背景栏颜色。
  • unselectedItemTintColor:未选中项目的颜色。

因此,如果您更改tintColor,barItems的颜色将被更改。


...但是,为什么它不适用于IB?

在IB中为UITabBar的项目设置特定颜色时,会有一个名为Image Tint的选项。

imageTint

在“查看”部分更改Tint选项不会对TabBar的项目产生任何影响,但是只有Image Tint选项可以更改tabBar的项目颜色。

storyboard的全局色调颜色选项更改了“查看”部分的Tint选项,但不影响Image Tint选项的默认值,因此不影响标签栏的色调颜色。


所以。为什么Image Tint选项不受影响?

我无法解释为什么它不受影响。也许苹果对此有问题,或者是某种错误。


有一些解决方法可以设置图像颜色:

  • 为UITabBarController的TabBar对象显式设置一个Image Tint选项。

您应该设置每个TabBarController的{​​{1}}选项,因为它不会影响全局设置。

  • 以编程方式更改全局UITabBar的tintColor。

Image Tint的{​​{1}}处粘贴以下代码

AppDelegate.swift

答案 1 :(得分:1)

我遇到了类似的问题,此问题已通过将“渲染方式”属性更改为“默认”而不是“原始”来解决。在属性检查器的“渲染为”下,在右手边选择图像时,可以在资产库中找到它。