我正在尝试以编程方式为某些标签、按钮和文本字段设置相对于安全区域的高度和宽度的约束。例如,我希望将标签到安全区域顶部的距离设置为安全区域高度的 10%。
如何检索安全区域的高度和宽度?
这是一个合理的方法吗?我的想法是,无论 iOS 设备如何,我的屏幕都会自动调整。
谢谢您的帮助!
您可以通过存储安全区域的框架来获取高度。safeAreaLayoutGuide
有一个名为layoutFrame
.
let frame = self.view.safeAreaLayoutGuide.layoutFrame
print(frame.height)
print(frame.width)
我做了一个UIView
扩展创建一个只读属性 https://docs.swift.org/swift-book/LanguageGuide/Properties.html#ID261 called safeAreaFrame
.
safeAreaFrame
将是安全区域的框架如果 iOS 版本为 11 或更高版本.
否则,将会是bounds
(只是视图的框架)。
extension UIView {
public var safeAreaFrame: CGRect {
if #available(iOS 11, *) {
return safeAreaLayoutGuide.layoutFrame
}
return bounds
}
}
Example:
let frame = self.view.safeAreaFrame
print(frame.height)
print(frame.width)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)