iPhone XS 全应用页面顶部显示灰条,使用xib开发如何移除?

原因说明
这个灰条是系统状态栏承载视图的默认底色。适配启动屏Storyboard后,系统识别到应用支持全面屏布局,若视图控制器未正确配置全屏延伸属性,就会在状态栏区域保留该默认视图,即使隐藏状态栏文字内容,该承载视图仍会显示。
解决步骤
- 首先配置视图控制器的边缘延伸属性,在控制器的
viewDidLoad方法中添加对应代码:
Objective-C版本:self.edgesForExtendedLayout = UIRectEdgeAll;
Swift版本:edgesForExtendedLayout = .all - 若控制器嵌套在UINavigationController中,即使已经隐藏导航栏,仍需补充以下配置:
Objective-C版本:
Swift版本:self.navigationController.navigationBar.translucent = YES; self.navigationController.navigationBar.hidden = YES;navigationController?.navigationBar.isTranslucent = true navigationController?.navigationBar.isHidden = true - 打开对应xib文件,选中当前视图控制器,在「Attributes Inspector」面板的「Extend Edges」分组下,勾选「Under Top Bars」和「Under Opaque Bars」两个选项
- 检查自定义头部视图的顶部约束,确认约束对象为父视图的顶部而非Safe Area顶部,约束常量设置为0
- 如完成以上操作后仍有灰条,可强制修改状态栏承载视图的背景色为透明:
Objective-C版本:[UIApplication sharedApplication].statusBarUIView.backgroundColor = UIColor.clearColor;
Swift版本:UIApplication.shared.statusBarUIView?.backgroundColor = .clear
内容的提问来源于stack exchange,提问作者Mobile Dev
相关产品推荐
相关产品推荐

