新的iPhone X已经摆脱了主页按钮,并在最底部更换了一个“家用指示灯”,允许用户向上滑动以返回主屏幕。
我的问题是,我们如何检测此主页指示器是否在屏幕上?我想做点什么:
if (!notfullScreen)
{
if (swipeBarExists)
{
viewHeight -= swipeBarHeight;
}
}
我查了[UIApplication sharedApplication]
但没有发现任何内容。基本上我真的不知道该怎么称呼这个东西而且找不到答案。
答案 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可以获得主页指示条本身的高度。