【问题标题】:iOS safeAreaLayoutGuide gives full 812 height for iPhone XiOS safeAreaLayoutGuide 为 iPhone X 提供了完整的 812 高度
【发布时间】:2018-05-13 18:37:47
【问题描述】:

Why does this iPhone X UIView not get safeAreaLayoutGuide? 中也有描述但未回答

我从头开始创建了一个全新的单视图通用 iOS 应用程序,并将这三行代码添加viewDidLoad()。我以纵向模式启动 iPhone X Simulator。这是我得到的:

let safeSize = view.safeAreaLayoutGuide.layoutFrame.size
// Returns (375.0, 812.0) — why full size?

let window = UIApplication.shared.delegate!.window!!
let safeSize2 = window.safeAreaLayoutGuide.layoutFrame.size
// Returns (375.0, 734.0) — this is what I expected.

为什么根视图控制器的根视图没有返回预期的安全区域?

【问题讨论】:

    标签: ios iphone-x safearealayoutguide


    【解决方案1】:

    SafeAreaInsets:

    您可以通过应用此中的插图来获得视图的安全区域 属性到视图的边界矩形。如果视图当前不是 安装在视图层次结构中,或尚未在屏幕上可见, 此属性中的边插入为 0。

    SafeAreaLayoutGuide 也是如此:

    当视图在屏幕上可见时,本指南会反映 未被导航栏、标签栏、工具栏覆盖的视图, 和其他祖先视图。

    因此,由于视图尚未在 viewDidLoad 中布局或可见,它为 0.. 当您在 viewDidLayoutSubviews 中执行此操作时,您将看到它非零并且设置了有效的插入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 2020-09-10
      相关资源
      最近更新 更多