如何设置视图的颜色以匹配半透明导航栏的颜色?

时间:2019-06-06 10:06:19

标签: ios swift uiview uinavigationbar uicolor

我需要增加导航栏的高度。为此,我在导航栏下添加了一个视图(具有所需的高度)。导航栏设置为半透明。因此,导航栏的颜色与实际的十六进制值略有不同。现在,我需要将导航栏的颜色与下面的视图匹配。以下是我正在使用的代码。

func setupNavigationBar() {
    title = "Profile"

    self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: ""), for: .default)
    self.navigationController?.navigationBar.shadowImage = UIImage(named: "")

    headerView.backgroundColor = navigationController?.navigationBar.barTintColor
    headerView.isOpaque = false  
}

我得到如下所示的不同阴影。

enter image description here

如何使视图的颜色与导航栏的颜色相同?我可以通过减小视图的Alpha值来接近所需的颜色,但是我对该方法表示怀疑,因为没有为此定义标准。

P.S。导航栏必须保持半透明。

2 个答案:

答案 0 :(得分:0)

使用:设置背景色以清除导航栏:

self.navigationController?.navigationBar.backgroundColor = UIColor.clear

希望这会有所帮助。

答案 1 :(得分:0)

您只需要将opacity中的headerView设置为0.85

headerView.backgroundColor = navigationController?.navigationBar.barTintColor
headerView.layer.opacity = 0.85
headerView.isOpaque = false

Output

You can download the sample code from here

请忽略示例代码中其他未使用的代码。

说明:

navigationController的样式设置为translucent时,系统会自动将0.85的图层不透明度UINavigationController设为

我亲自通过iterating的所有UINavigationController子视图进行检查。