如何在iOS 10中使导航栏透明

我有以下代码使导航栏透明,但仍然显示后退按钮,这适用于所有版本的iOS,但它已停止使用iOS 10测试版
navigationBar.setBackgroundImage(UIImage(),for: UIBarMetrics.default)
    navigationBar.shadowImage = UIImage()
    navigationBar.isTranslucent = true

iOS 10在这方面有什么变化吗?

注意它不可能使用navigationBar.isHidden,因为这会导致导航栏后退按钮和标题等也消失.

解决方法

我不知道在iOS 10中有什么变化可以阻止以前的代码工作,但要修复它我创建了一个透明图像(它只需要维度上的一个像素)并使用以下代码使导航栏透明(但仍显示后退导航按钮).
let transparentPixel = UIImage(named: "TransparentPixel")
    navigationBar.setBackgroundImage(transparentPixel,for: UIBarMetrics.default)
    navigationBar.shadowImage = transparentPixel
    navigationBar.backgroundColor = UIColor.clear()
    navigationBar.isTranslucent = true

顺便提一下,如果要更改导航栏的颜色,可以使用相同的原则:

let redPixel = UIImage(named: "RedPixel")
    navigationBar.setBackgroundImage(redPixel,for: UIBarMetrics.default)
    navigationBar.shadowImage = redPixel
    navigationBar.isTranslucent = false

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...