我已阅读了iPhone X的人机界面指南,但它没有明确说明“安全区域”(即适用于iPhone X顶部刘海和底部栏的区域)。 我希望了解此区域的像素尺寸,包括从顶部和底部删除的尺寸。
通过使用以下代码打印当前窗口的安全区域嵌入,您可以得到顶部和底部安全区域的点尺寸。
if #available(iOS 11.0, *) {
UIApplication.shared.keyWindow?.safeAreaInsets
// ...
}
竖屏模式下,上方区域长度为44 points,下方区域长度为34 points。
由于iPhone X具有@3x分辨率,因此上方区域长度为132 pixels,下方区域长度为102 pixels。
Xcode 9在界面生成器中引入了安全区域布局指南。您可以通过进入故事板的文件检查器并选中标记为“使用安全区域布局指南”的复选框来打开它们。
从那里开始,每当您向根视图添加约束时,您都可以选择将其限制在安全区域内。 在此照片中,橙色视图被约束到安全区域的边缘,而蓝色视图被约束到父视图的边缘。
从那里我们可以计算出44个点用于顶部安全区域,而34个点用于底部区域。
在UIViewController
中,您可以从视图的safeAreaInsets
属性中获得它。
您不需要调用单例UIApplication
,也可以从您的视图布局中获取它们。
self.view.safeAreaInsets.
(顶部、底部、左侧、右侧)