隐藏导航栏的分隔线并使状态栏保持与导航栏相同的颜色

时间:2017-02-15 11:25:20

标签: ios swift

我打电话

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage() 
在viewDidLoad中

看起来像这样:

导航栏下方的分隔线消失。问题是,状态栏变为白色。我希望它与导航栏保持相同的颜色。

如果只是

self.navigationController?.navigationBar.shadowImage = UIImage() 
viewDidLoad中的

,如下所示:

导航栏下面的

我有一个与导航栏完全相同的颜色。我想将它混合成一个,所以看起来导航栏下方的视图是导航栏的一部分。

2 个答案:

答案 0 :(得分:0)

这对我有用。你能看看这个答案吗?

 self.navigationController?.navigationBar.isTranslucent = false
 self.navigationController?.navigationBar.barTintColor = UIColor.blue
 self.view.backgroundColor = UIColor.blue
 // Add your colour   

答案 1 :(得分:0)

您致电self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)后状态栏变为白色,因为viewController.extendedLayoutIncludesOpaqueBarsNO,因此当您为navigationBar设置不透明背景图片时,navigationBar的背景将不会从{ {1}}但来自0,状态栏后面没有任何内容,状态栏显示为白色。

因此,您必须致电20以避开白色状态栏。

自定义shadowImage仅在为viewController.extendedLayoutIncludesOpaqueBars = YES设置自定义背景图像时才有效。