【发布时间】:2017-09-23 06:45:14
【问题描述】:
我已经阅读了Human Interface Guidelines for iPhone X,它并没有具体说明“安全区域”(适用于 iPhone X 的顶级和底部栏的区域)。我想知道这个区域的像素尺寸,包括从顶部和底部移除的尺寸。
【问题讨论】:
我已经阅读了Human Interface Guidelines for iPhone X,它并没有具体说明“安全区域”(适用于 iPhone X 的顶级和底部栏的区域)。我想知道这个区域的像素尺寸,包括从顶部和底部移除的尺寸。
【问题讨论】:
【讨论】:
safeAreaInsets(来自UIViewController的道具)如果你正在编写一个iOS或任何可以帮助的库(对于react-native/web github.com/th3rdwave/react-native-safe-area-context)
通过以下代码打印当前窗口的安全区插图,可以得到上下安全区的点尺寸。
if #available(iOS 11.0, *) {
UIApplication.shared.keyWindow?.safeAreaInsets
// ...
}
纵向时,顶部区域为 44 点,底部区域为 34 点。
由于 iPhone X 具有 @3x 分辨率,因此顶部区域的长度为 132 像素,底部区域的长度为 102 像素。
【讨论】:
Xcode 9 在界面构建器中引入了安全区域布局指南。您可以通过进入情节提要的文件检查器和 ticking the checkbox labelled "Use Safe Area Layout Guides"
来打开它们每当您向根视图添加约束时,您都可以选择将其约束到安全区域。 In this photo,橙色视图被限制在安全区域的边缘,而蓝色视图被限制在超级视图的边缘。
从那里我们可以计算出 44 个点用于顶部安全区域,而 34 个点用于底部区域。
【讨论】:
您可以从UIViewController 中视图的safeAreaInsets 属性获取它。
【讨论】:
您不需要调用单例UIApplication,也可以从您的视图布局中获取它们。
self.view.safeAreaInstes.(上、下、左、右)
【讨论】: