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

时间:2017-09-15 07:56:42

标签: ios iphone cocoa-touch iphone-x

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

我的问题是,我们如何检测此主页指示器是否在屏幕上?我想做点什么:

if (!notfullScreen)
{
    if (swipeBarExists)
    {
        viewHeight -= swipeBarHeight;
    }
}

我查了[UIApplication sharedApplication]但没有发现任何内容。基本上我真的不知道该怎么称呼这个东西而且找不到答案。

1 个答案:

答案 0 :(得分:9)

您可以使用为safeAreaInsets.bottom定义的UIView来获取您应该插入内容的空间量,以确保它不会覆盖住宅指示符(或其他元素)。请注意,此值可能会更改,例如,当您在iPhone上旋转为横向时,它会缩小。要在发生这种情况时收到通知,请在视图控制器中实施safeAreaInsetsDidChange。您还可以使用safeAreaLayoutGuide自动布局。

因此,如果您有全屏视图,可以这样检查:

override func viewSafeAreaInsetsDidChange() {
    super.viewSafeAreaInsetsDidChange()

    if view.safeAreaInsets.bottom > 0 {
        //home indicator
    } else {
       //no home indicator
    }
}

请注意,没有API可以获得主页指示条本身的高度。