我是iOS快速开发的新手,我遇到了一个问题.我想设置透明导航栏并使透明导航栏和状态栏的图像底层如下图所示,

但在我实现以下代码后,
self.navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController!.navigationBar.shadowImage = UIImage()
self.navigationController!.navigationBar.translucent = true
结果是图像仍然在导航栏和状态栏下方,即使我将导航栏设置为透明.

bik*_*ota 12
如果您没有使用默认导航栏,则将背景图像视图(将在状态栏下方显示)从顶部约束向上移动20px,然后使用以下命令清除状态栏背景颜色:
 override func viewDidLoad() {
    super.viewDidLoad()
    let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView
        statusBar?.backgroundColor = UIColor.clear
}
如果要将状态栏项目的颜色更改为白色,请使用:
 override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}
Dha*_*esh 10
我尝试过与您提供的代码相同的代码:
override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController!.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
    self.navigationController!.navigationBar.shadowImage = UIImage()
    self.navigationController!.navigationBar.translucent = true
}
它工作正常,你可以在这里看到结果:

检查我的示例项目并找出您遗漏的内容.
希望它会有所帮助.
| 归档时间: | 
 | 
| 查看次数: | 14484 次 | 
| 最近记录: |