ios - 获取顶部约束的参考
问题描述
我正在尝试获取与安全区域相关联的给定视图的 topConstraint(例如:附加)的引用 - 顶部。
我创建了一个工作正常的函数,但逻辑上不可靠。
func getSafeAreaTopConstraint(view: UIView, in targetView: UIView) -> NSLayoutConstraint? {
let constraints = targetView.constraints.filter({ $0.firstItem as? UIView == view || $0.secondItem as? UIView == view })
return constraints.filter({ $0.firstAttribute == .top || $0.secondAttribute == .top }).first
}
我想创建一个比较如下的函数
func getSafeAreaTopConstraint(view: UIView, in targetView: UIView) -> NSLayoutConstraint? {
let constraints = targetView.constraints.filter({ ($0.firstItem as? UIView == view && $0.secondItem == SafeArea.Top) || ($0.secondItem as? UIView == view && $0.firstItem == SafeArea.Top) })
return constraints.filter({ $0.firstAttribute == .top || $0.secondAttribute == .top }).first
}
firstItem
如果orsecondItem
是,我如何比较Safe Area.Top
?
解决方案
通过访问该字段,您正在做的事情constraints
是不安全的。推荐的方法是为约束创建一个 IBOutlet
推荐阅读
- reactjs - 将函数作为道具从功能组件传递到类组件
- discord.py - 将文本逐行发送到不和谐的 webhook
- python - Python pandas:ParserError:使用了多字符分隔符
- r - 如何将用户提供的参数传递给我的函数中的绘图函数?
- javascript - 如何使用 axios 下载 Spring Boot ByteArrayResource?
- powershell - 无法将哈希表作为函数参数传递
- python - 在 Mac OS Big Sur 上使用 pyenv 安装 python 3.6 时出现问题
- automation - 如何使用赛普拉斯在网站中查找损坏的链接?
- ruby-on-rails - Rails 脚手架黑色背景
- html - 如何使用此标题栏垂直对齐 CSS 中的文本