手机更新IOS 15之后发现我们的APP的头部导航栏忽然多出来一行白条如下图所示。
这是什么所导致的呢?
- scrollEdgeAppearance 属性
- iOS15 强制适用于所有导航器
导航控制器包含导航栏和滚动视图,滚动视图的部分内容将显示在导航栏下方。当滚动内容的边缘到达该栏,UIKit将在此属性中应用外观设置。此属性的值为nil的时候,UIKit将使用standardAppearance属性中的设置,并修改为使用透明背景。当没有导航控制器管理导航栏时,UIKit将忽略此属性,并使用导航栏的标准外观。在低版本的应用程序上运行时,此属性适用于标题较大的导航栏。在iOS 15中,此属性适用于所有导航栏。
如何解决这个问题呢?
下面提供OC方法去解决这个问题
代码如下
UINavigationBarAppearance *appearance = [UINavigationBarAppearance new];
[appearance configureWithOpaqueBackground];
appearance.backgroundColor = kMainColor;
//去除导航栏下面的黑线
appearance.shadowColor = [UIColor clearColor];
self.navigationController.navigationBar.standardAppearance = appearance;
self.navigationController.navigationBar.scrollEdgeAppearance=self.navigationController.navigationBar.standardAppearance;