繁体   English   中英

如何在swift4中清除导航栏颜色?

[英]How to remove navigation bar colour clear in swift4?

我想清除导航栏的颜色。 在我的 ViewController 中有一个背景图像,当我删除导航 barTintColor、navigationController.view.background 和导航背景图像的颜色时,模拟器会显示我:- 在此处输入图像描述

我一直在尝试很多代码,但没有找到解决方案。 我想要这样的导航栏:- 在此处输入图像描述

带有清晰的导航栏颜色。 有什么解决办法,告诉我? 谢谢!

您可以在导航栏上透明的viewWillAppear ,并移除透明度viewWillDisappear如下

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.isTranslucent = true
}
override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
    self.navigationController?.navigationBar.shadowImage = nil
    self.navigationController?.navigationBar.isTranslucent = false
}

背景图像和后退按钮将可见

在此处输入图片说明

最好您必须避开导航栏。 将导航栏隐藏在导航控制器中,并将用户自定义视图隐藏在视图控制器中,以避免出现此问题。

Swift 5::<\/strong>在 AppDelegate 的 didFinishLaunchingWithOptions 函数中调用下面的方法可以解决问题(这将应用于您的所有导航栏,但不要忘记切换您的视图控制器)

let navBarAppearance = UINavigationBarAppearance()
navBarAppearance.configureWithTransparentBackground()
            
navigationController?.navigationBar.standardAppearance = navBarAppearance
navigationController?.navigationBar.scrollEdgeAppearance = navBarAppearance

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM