在iOS中布局视图的快速指南

如果您是反叛者,请使用edgesForExtendedLayout

视图控制器还具有可以使用的属性edgesForExtendedLayout 。 这表明视图的哪些边缘可以进入父视图控制器(例如,导航栏或标签栏)提供的镶边下。 您可以简单地使用edgesForExtendedLayout = []将其关闭。 但是,这样您就不会获得内容在半透明导航栏下滑动的好习惯,并且看起来很奇怪。

使用后果自负。

安全区域可让您的应用完全通过iPhone X防护

safeAreaLayoutGuide是新的闪亮API,旨在替代topLayoutGuidebottomLayoutGuide 。 令人困惑的是,安全区域布局指南位于视图上,而不是像topLayoutGuide那样的视图控制器 。 如果您使用的是XIB或情节提要,则可以通过在文件检查器中选中“安全区域布局指南”来选择使用它。

在大多数情况下, topAnchorsafeAreaLayoutGuide等效于旧的topLayoutGuide 。 困惑? 你不是一个人。 😁

本质上, top/bottomLayoutGuide定义了您不应放置材料的区域,而safeAreaLayoutGuide定义了您放置材料的区域。

由于视图上有安全区域,这意味着您可以在XIB中使用它们,这很棒。 但是,您仍然不能通过NSLayoutConstraint初始化程序使用它们。 安全区域还具有使用leadingAnchorleadingAnchor使横向的iPhone X看起来leadingAnchor -否则,您可能会leadingAnchor UI缺口的风险。

结论

如果您希望自己的应用程序可用于iPhone X,请考虑以下因素:

  • 绝对不限于视图控制器的视图的顶部或底部
  • 除非绝对必要,否则不要摆弄edgesForExtendedLayout
  • 限制为topLayoutGuide.bottomAnchorbottomLayoutGuide.topAnchor
  • 或者,如果您希望您的应用在横向的iPhone X上看起来很棒,请限制在safeAreaLayoutGuide中。

享受你的缺口!