我在试图以编程方式布局视图时遇到了一个问题,我似乎找不到一种简洁、非黑客的方法来解决它。
我正在使用safeAreaInsets调整视图中某些元素的大小。在我在iOS 11之前的设备上试用之前,这一切都很好。很明显,由于缺少安全区域插图,我的子视图的大小会崩溃,一切都变得一团糟。当我使用旧版本的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
}