iOS中UINavigationBar Tint Color和应用程序其他部分之间的颜色差异

11

这是我在Sketch中设计的:

enter image description here

Sketch显示蓝色的颜色值为70,164,239。

所以我为我的选项卡编写了以下代码:

UINavigationBar.appearance().barTintColor = UIColor(red: 70.0/255.0, green: 164.0/255.0, blue: 239.0/255.0, alpha: 1.0)
UINavigationBar.appearance().tintColor = UIColor.clearColor()
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.whiteColor()]

以下内容是用于视图下方(在操作中)的:

self.two_buttons_view.backgroundColor = UIColor(red: 70.0/255.0, green: 164.0/255.0, blue: 239.0/255.0, alpha: 1.0)

但是看看发生了什么,导航栏的颜色始终比视图的颜色浅一些。使用这种浅蓝色只有轻微的差别,但如果我选择深蓝色,差距就会更加明显。似乎导航栏的颜色从未像页面的其余视图一样鲜艳:

输入图像描述

1个回答

31

tintColor是一个色调颜色,它与导航栏的半透明度以及导航栏后面的内容相结合,产生了另一种颜色。

如果你想完全控制导航栏的实际颜色,请将其translucent设置为false,然后给它一个包含所需颜色矩形的背景图片 - 不需要使用任何色调颜色。


4
谢谢,@matt。在我的情况下,只需要使用UINavigationBar.appearance().translucent = false就可以了,现在即使只是通过设置着色器本身的色调,它看起来也很出色。 - Chaim Friedman
2
在Swift 3中,这已经改变为:UINavigationBar.appearance().isTranslucent = false。 - Chaim Friedman
1
你不需要给它一个背景图片,只需设置它的背景颜色即可。 - Elijah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接