Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何设置视图';s颜色以匹配半透明导航栏';什么颜色?_Ios_Swift_Uiview_Uinavigationbar_Uicolor - Fatal编程技术网

Ios 如何设置视图';s颜色以匹配半透明导航栏';什么颜色?

Ios 如何设置视图';s颜色以匹配半透明导航栏';什么颜色?,ios,swift,uiview,uinavigationbar,uicolor,Ios,Swift,Uiview,Uinavigationbar,Uicolor,我需要增加导航栏的高度。为此,我在导航栏下添加了一个视图(所需高度)。导航栏设置为半透明。因此,导航条颜色的渲染与实际十六进制值略有不同。现在我需要将导航栏的颜色与下面的视图匹配。下面是我正在使用的代码 func setupNavigationBar() { title = "Profile" self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: ""), for: .default

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

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  
}
我得到了如下不同的色调

如何使视图的颜色与导航栏的颜色相同?我可以通过减少视图的alpha来接近所需的颜色,但我对这种方法表示怀疑,因为没有关于它的标准定义


另外,导航栏必须保持半透明。

使用以下方法将导航栏的背景色设置为透明:

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

希望这有帮助。

您只需将
headerView的
opacity
设置为
0.85

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

:

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

说明: 当您将
navigationController
样式设置为
Transparent
时,系统会自动为
UINavigationController设置图层不透明度
0.85


我个人通过迭代
UINavigationController
的所有子视图来检查导航栏的颜色使导航栏清晰对于您想要具有可自定义高度的导航栏的用例,最佳解决方案是创建自定义导航栏(使用UIView或其他工具)并自己实现转换。这是因为即使你设法与你的视图匹配导航栏,当iOS导航栏会在过渡期间动画(淡入或交叉淡出)时,你的视图不会导致用户体验不佳。谢谢。我仍然不能用这个解决方案得到相同的颜色。如何设置导航栏的颜色?我正在故事板中设置十六进制值。我也在做同样的事情。等等,我正在和你分享演示代码。感谢您在导航栏检查器中取消选中“半透明”,并且不更改不透明度