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

NavigationBar without statusbar overlaps safearea in iOS11

我在使用 iPhoneX 模拟器 iOS11 时遇到问题。

我有一个 viewcontroller 没有状态栏。为此,我添加:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

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

我该如何解决这个问题?

最终解决方案是使用 safeAreaInsets

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

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