关于tabBar或者导航栏的图标颜色深入了解

这里使用的是swift语言,oc也是一样的,类比一下就可以了

  • 1, 默认情况下,添加标题,常规图片和选中图片之后,不论你的原来的图片是什么颜色,未选中的标题和图片都是灰色,选中标题和图片颜色是蓝色
Snip20170128_2.png
  • 2, 如果想要图片完全和自己的图片颜色是一样的,需要设置下面的属性:
    一旦更改下面的设置,那么图片的颜色就和你原有的图片颜色一致,如下:

    • 关于tabBar或者导航栏的图标颜色深入了解_第1张图片
      Snip20170128_13.png
    • 关于tabBar或者导航栏的图标颜色深入了解_第2张图片
      Snip20170128_3.png
Snip20170128_6.png
  • 3, 这时候图片颜色如果是我们想要的,ok,那么文字颜色还是蓝色的,修改文字颜色:
    设置属性tabBar的tintColor
self.tabBar.tintColor = UIColor.orange
Snip20170128_9.png
  • 4, ok,字体颜色也改过了,但是如果我们还想要修改未被选中的文字颜色怎么办呢?
    这是时候我们需要修改的是UITabBarItem的appearance属性
//设置普通状态下的文字颜色(设置完这个之后tintColor也就不起作用了,优先级问题)
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.red], for: .normal)
//然后再设置选中状态下的文字颜色 
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.orange], for: .selected)
Snip20170128_12.png
  • 5, ok,未被选中的文字也被修改成了我们想要的颜色。(我们的素材图片为选中的时候是灰色,选中的时候是橙色)。这个时候基本也就结束了,但是我们的素材颜色明显和我们设置的颜色不搭,那么我们可不可以统一设置成我们想要的颜色,而不是用素材颜色,也不适用默认的灰色和蓝色呢,肯定是可以的啦:

  • 5.1, 首先还是把图片设置成template image

  • Snip20170128_14.png
  • 5.2, 通过tintColor来统一设置问题和图片的颜色,如下;

Snip20170128_15.png

ps:我这里没有找到合适的修改默认为选中时候图标是灰色的情况,tintColor只能用来修改选中的时候情况,如果有人知道如何修改默认灰色的情况,请私信我一下,先谢过啦!

你可能感兴趣的:(关于tabBar或者导航栏的图标颜色深入了解)