UINavigationController 与 ViewController 相同的颜色

Posted

技术标签:

【中文标题】UINavigationController 与 ViewController 相同的颜色【英文标题】:UINavigationController same color as ViewController 【发布时间】:2018-05-14 02:13:46 【问题描述】:

在 Swift 4.0 中,我尝试为 UINavigationBar 应用与我的 viewController 颜色相同的颜色,简而言之,我想要透明的 Navigationbar,我尝试了所有选项,但仍然无法看到 Navigationbar 和 viewController 相同的颜色。 (见附图)

self.navigationBar.backgroundColor = backGroundColor
self.navigationBar.barTintColor = backGroundColor
self.view.backgroundColor = backGroundColor

我知道我是否使用

self.navigationBar.setBackgroundImage(UIImage(), for: .default)
isTranslucent = false 

它会使背景透明,但当它滚动到顶部时,tableview 列表可能会在导航栏中可见,这是我不想要的。

还有其他选择吗?当tableview滚动到顶部时,导航栏应该是透明的,并且tablview列表不应该在navigatiobar中可见。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

在通过UINavigationBar 应用一些效果后,您必须以与您想要的颜色相同的方式设置颜色,您可以通过使用根据原始颜色计算的新值更改UINavigationBar 背景颜色来实现此目的.

您可以使用以下链接获取该值: http://htmlpreview.github.io/?https://github.com/tparry/Miscellaneous/blob/master/UINavigationBar_UIColor_calculator.html

通过这样做,您可以将 Translucent 属性保持为 true 并获得您想要的相同结果。

【讨论】:

以上是关于UINavigationController 与 ViewController 相同的颜色的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController 与 UISplitViewController

将 UINavigationController 与具有透明背景的 UIViewController 一起使用

UINavigationController 与 ViewController 相同的颜色

RedPark 无法从串口读取数据:UIViewController 与 UINavigationController

将 UISearchController 与 UINavigationController 一起使用

如何使 REFrostedViewController 与 UINavigationController 一起工作