最佳答案
我设法使用新的安全区域布局指南并保持与 iOS 9 和 iOS 10 的向后兼容性: (编辑:正如@NickEntin 的评论中所指出的,此实现将假设存在状态栏,而在 iPhone X 的横屏中则不会如此。导致顶部空间过大(20点)。但是它会运行得很好。
例如如果您希望 View 位于状态栏下方 10 点(以及 iPhone X 传感器外壳下方 10 点):
- 在您的 XIB 中,转到
File Inspector
并通过选中Use Safe Area Layout Guides
启用保险箱。 - 创建一个从 View 顶部到主视图顶部的约束,使用
>=
(大于或等于)约束,常量30
(30因为我们想要10分状态栏间距为 20 点)和优先级High
(750)。 - 创建一个从 View 顶部到安全区域顶部的约束,具有
=
(相等)约束、常量10
和优先级低
( 250).
对于底部的 View (以及安全区域的前导/尾随或左/右 View )也可以执行相同的操作:
- 在您的 XIB 中,转到
File Inspector
并通过选中Use Safe Area Layout Guides
启用保险箱。 - 创建一个从 View 底部到主视图底部的约束,具有
>=
(大于或等于)约束,常数10
和优先级High
(750)。 - 创建一个从 View 底部到安全区域底部的约束,具有
=
(相等)约束,常数10
和优先级低
( 250).
关于iOS 11 安全区域布局指南向后兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46184197/