iOS11中没有状态栏的导航栏与安全区域重叠

Posted

技术标签:

【中文标题】iOS11中没有状态栏的导航栏与安全区域重叠【英文标题】:NavigationBar without statusbar overlaps safearea in iOS11 【发布时间】:2017-09-27 17:20:30 【问题描述】:

ios11 的 iPhoneX 模拟器有问题。

我有一个没有状态栏的视图控制器。为此,我添加:

- (BOOL)prefersStatusBarHidden 
    return YES;

到目前为止还不错,但导航栏与 iPhoneX 中的安全区域重叠。

我该如何解决这个问题?

【问题讨论】:

您的导航栏是标准 UINavigationBar 还是自定义解决方案? 我的导航栏是标准的@CalStephens 嗨,我的全屏应用也使用导航控制器,我也遇到了同样的问题。你解决了吗? @FernandoReynoso 是的,我解决了这个问题。我要写解决方案 【参考方案1】:

最后解决方案是使用safeAreaInsets

if (@available(iOS 11.0, *)) 
        UIEdgeInsets safeInsets = UIApplication.sharedApplication.delegate.window.safeAreaInsets;
        paddingTop = safeInsets.top;

您可以通过编程方式或使用自动布局来完成此操作

【讨论】:

以上是关于iOS11中没有状态栏的导航栏与安全区域重叠的主要内容,如果未能解决你的问题,请参考以下文章

让导航栏与iOS 7中的状态栏重叠

在导航栏iOS 11安全区域下定位视图

iOS11中如何设置导航栏与ViewController内容重叠

引导程序中的静态水平导航栏与内容区域重叠

如何修复表格视图的搜索栏与状态栏重叠

关于状态栏与导航栏的设置及自定义