【问题标题】:hide separator line of navigation bar and keep the status bar the same color as the nav bar隐藏导航栏的分隔线并保持状态栏与导航栏颜色相同
【发布时间】:2017-02-15 20:09:44
【问题描述】:

我打电话

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

在 viewDidLoad 中。

看起来像这样:

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

如果只是

self.navigationController?.navigationBar.shadowImage = UIImage() 

在 viewDidLoad 中,如下所示:

在导航栏下方,我可以看到与导航栏颜色完全相同的视图。我希望将其融合为一个,因此导航栏下方的视图看起来是导航栏的一部分。

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    它对我有用。你可以检查这个答案。

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

    【讨论】:

    【解决方案2】:

    调用self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)后你的状态栏变成白色,因为你的viewController.extendedLayoutIncludesOpaqueBarsNO,所以当你给navigationBar设置不透明背景图片时,navigationBar的背景不会从0开始,而是从@987654325开始@,状态栏后面什么都没有,状态栏显示为白色。

    所以你必须调用viewController.extendedLayoutIncludesOpaqueBars = YES 来避开白色状态栏。

    仅当您为 UINavigationBar 设置自定义背景图像时,自定义 shadowImage 才有效。

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      相关资源
      最近更新 更多