如何检测iPhone X家用指示灯?

Ser*_*nce 2 iphone cocoa-touch ios iphone-x

新的iPhone X已经摆脱了主页按钮,并在最底部更换了一个"家用指示灯",允许用户向上滑动以返回主屏幕.

我的问题是,我们如何检测这个家庭指示器是否在屏幕上?我想做的事情如下:

if (!notfullScreen)
{
    if (swipeBarExists)
    {
        viewHeight -= swipeBarHeight;
    }
}
Run Code Online (Sandbox Code Playgroud)

我登记入住,[UIApplication sharedApplication]一无所获.基本上我真的不知道该怎么称呼这个东西而且我很难找到答案.

Jor*_*n H 10

要获得住宅指示器高度,请检查safeAreaInsets.bottom,定义UIView.请注意,此值可能会更改,例如,当您旋转到横向缩小时.要在发生这种情况时收到通知,请safeAreaInsetsDidChange在视图控制器中实现.

如果需要使用"自动布局"在此元素上方布局内容,请参阅safeAreaLayoutGuide.

  • 我发现安全区域太大 - 使您的应用程序看起来像一个模拟的 iOS 10 应用程序。实际上,在顶部和底部开始斜角后,它会移除所有空间。我使用了老式的方法来检测 iPhone X,并在底部为指示灯留了一点空间。它并不出色,但它对我有用,让我的应用程序看起来很现代,并允许我在不在 iPhone X 上时覆盖它。 (2认同)