前言
环境
Xcode 13.0
iOS 15.0
在 升级xcode 13.0 之后,正式开始支持 iOS15,就需要做适配 iOS15了,在 xcode 13.0 之前的就不会有什么影响的
UINavigationBar
用新 xcode13 编译工程后,导航栏的问题比较明显,调试之后发现是 UINavigationBar 部分属性的设置在 iOS15 上是无效的
查看导航栏特性 API:UINavigationBarAppearance 后发现,iOS15navigationBar 的相关属性设置要通过实例 UINavigationBarAppearance 来实现,UINavigationBarAppearance 是 iOS13 更新的 API,应该有人已经在用,我们的应用兼容 iOS10 以上,对于导航栏的设置还没有使用 UINavigationBarAppearance,如今在 iOS15 上失效,所以对于呈现的问题,做如下适配:
解决方法
主要是以下两个属性 (UINavigationController 的属性)
// 静止样式
self.navigationBar.standardAppearance;
// 滚动样式
self.navigationBar.scrollEdgeAppearance;
下面