如何在iOS 11之前以编程方式获取安全区域的高度



不使用SafeArealayOutGuide(我是针对iOS 9 ),是否有任何方法可以编程地获取iOS中"安全区域"的高度而无需创建新视图(被限制为安全区域)仅出于此目的?

我无法为安全区域设置插座,因为它不是Uiview ...甚至任何类型的类。

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

还有其他方法可以做吗?

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和10的设备没有安全的区域,因此默认为0.0。

最新更新