在iOS中布局视图的快速指南
如果您是反叛者,请使用edgesForExtendedLayout
视图控制器还具有可以使用的属性edgesForExtendedLayout
。 这表明视图的哪些边缘可以进入父视图控制器(例如,导航栏或标签栏)提供的镶边下。 您可以简单地使用edgesForExtendedLayout = []
将其关闭。 但是,这样您就不会获得内容在半透明导航栏下滑动的好习惯,并且看起来很奇怪。
使用后果自负。
安全区域可让您的应用完全通过iPhone X防护
safeAreaLayoutGuide
是新的闪亮API,旨在替代topLayoutGuide
和bottomLayoutGuide
。 令人困惑的是,安全区域布局指南位于视图上,而不是像topLayoutGuide
那样的视图控制器 。 如果您使用的是XIB或情节提要,则可以通过在文件检查器中选中“安全区域布局指南”来选择使用它。
在大多数情况下, topAnchor
的safeAreaLayoutGuide
等效于旧的topLayoutGuide
。 困惑? 你不是一个人。 😁
本质上, top/bottomLayoutGuide
定义了您不应放置材料的区域,而safeAreaLayoutGuide
定义了您应放置材料的区域。
由于视图上有安全区域,这意味着您可以在XIB中使用它们,这很棒。 但是,您仍然不能通过NSLayoutConstraint初始化程序使用它们。 安全区域还具有使用leadingAnchor
和leadingAnchor
使横向的iPhone X看起来leadingAnchor
-否则,您可能会leadingAnchor
UI缺口的风险。
结论
如果您希望自己的应用程序可用于iPhone X,请考虑以下因素:
- 绝对不限于视图控制器的视图的顶部或底部
- 除非绝对必要,否则不要摆弄
edgesForExtendedLayout
- 限制为
topLayoutGuide.bottomAnchor
或bottomLayoutGuide.topAnchor
- 或者,如果您希望您的应用在横向的iPhone X上看起来很棒,请限制在
safeAreaLayoutGuide
中。
享受你的缺口!