【发布时间】:2019-10-21 20:10:21
【问题描述】:
我需要增加导航栏的高度。为此,我在导航栏下添加了一个视图(所需高度)。导航栏设置为半透明。因此导航栏颜色与实际的十六进制值略有不同。现在我需要将导航栏的颜色与下面的视图相匹配。以下是我正在使用的代码。
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 来接近所需的颜色,但我对这种方法表示怀疑,因为没有定义关于它的标准。
附:导航栏必须保持半透明。
【问题讨论】:
-
使导航栏颜色清晰
-
对于这样的用例,如果您想要一个具有可自定义高度的导航栏,最好的解决方案是创建一个自定义导航栏(使用 UIView 或其他东西)并自己实现过渡。这是因为即使您设法将导航栏的颜色与您的视图相匹配,在某些情况下,iOS 导航栏会在过渡期间设置动画(淡入或交叉淡入淡出)而您的视图不会,这将导致糟糕的用户体验.
-
@kerry 我会考虑你提到的这一点。谢谢。
标签: ios swift uiview uinavigationbar uicolor