如何仅为iPhone X在顶部添加额外高度?

时间:2018-05-18 11:28:24

标签: ios iphone storyboard interface-builder

我有一个按钮,一直显示在屏幕顶部,位于状态栏下方。按钮的中心是一个“+”符号。除了iPhone X之外,所有iPhone都看起来没问题。对于iPhone X,按钮应该更高,因为'+'太靠近缺口。有没有办法在故事板中这样做?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

正确的方法是使用安全区域限制。您可以阅读更多相关信息here。 在IB中设置顶部安全区域约束后,它将自动调整按钮(基于设备)。

Adding safe area constraints

现在,如果您真的想要检测应用程序是否在iPhone X上运行,那么您可以使用黑客攻击。但是,要小心,因为这绝对不是正确的解决方案,你应该避免它

if let mainWindow = UIApplication.shared.delegate?.window, (mainWindow?.safeAreaInsets.top ?? 0) > 0.0 {
    // Iphone X
}

修改

使用安全区域约束我的意思是您可以创建一个虚拟UIView作为占位符来正确放置按钮。我所做的是,我创建了一个视图并设置了以下约束:顶部安全区域,前导,尾随和高度。然后,我可以将按钮垂直放在整个区域(第一张图像)中,也可以只放在状态栏下方的区域中。

enter image description here enter image description here