代码之家  ›  专栏  ›  技术社区  ›  Nerdy Bunz

在IOS 11之前,如何通过编程获得安全区域的高度?

  •  0
  • Nerdy Bunz  · 技术社区  · 6 年前

    如果不使用SafeArealLayoutGuide(我的目标是IOS 9+),是否有任何方法可以通过编程获得IOS中“安全区域”的高度,而无需仅为此目的创建新视图(约束到安全区域)?

    我无法设置安全区域的出口,因为它不是UIView。。。甚至是任何一类。

    如果我只是在ViewController中使用self.view.height,它会太高(错误)。

    还有别的办法吗?

    1 回复  |  直到 6 年前
        1
  •  11
  •   Sparga    6 年前

    在一个 UIViewController 您可以像这样使用顶部和底部布局辅助线:

    let safeAreHeight = self.view.frame.height - self.topLayoutGuide.length - self.bottomLayoutGuide.length
    

    UIView 你可以使用 safeAreaLayoutGuide

    let verticalSafeAreaInset: CGFloat
    if #available(iOS 11.0, *) {
      verticalSafeAreaInset = self.view.safeAreaInsets.bottom + self.view.safeAreaInsets.top
    } else {
      verticalSafeAreaInset = 0.0
    }
    let safeAreaHeight = self.view.frame.height - verticalSafeAreaInset
    

    由于运行iOS 9和iOS 10的设备没有安全区域,因此默认为0.0是安全的。