gpt4 book ai didi

ios - SafeArea 向后兼容

转载 作者:可可西里 更新时间:2023-11-01 01:08:41 29 4
gpt4 key购买 nike

我在尝试以编程方式布局 View 时遇到问题,我似乎无法找到一种简洁、非 hacky 的方法来修复它。

我正在使用 safeAreaInsets 来调整我 View 中某些元素的大小。在我在 iOS 11 之前的设备上试用它之前,它运行良好。显然,由于缺少 safeAreaInsets,我的 subview 的大小会分崩离析,一切都变得一团糟。在使用旧版本的 iOS 时,我应该回退到什么地方。

更具体地说,我可以在下面的扩展中实现哪些功能可以按预期工作?

extension UIView {

func compatibilityInsets() -> UIEdgeInsets {
if #available(iOS 11.0, *) {
return self.safeAreaInsets
} else {
//what goes here?
return self.olderVersionOfInsets
}
}
}

这是我如何使用此扩展方法的示例:

var minimumHeaderHeight: CGFloat {
//allows the header height to be 70 below navigation bar
return 70 + view.compatibilityInsets().top
}

最佳答案

添加了

safeAreaInsets 以帮助避免内容消失在 iPhone X 中的“缺口”后面……它仅支持 iOS 11 IIRC。

因此 iOS 10 及更低版本的替代方法是 return .zero,因为不需要定义任何安全区域。

.zero 在这种情况下被推断为 UIEdgeInsets 类型,因此等同于调用 UIEdgeInsets.zero

关于ios - SafeArea 向后兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50945625/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com