iDe*_*Dec 3 ios nslayoutconstraint swift
我在Storyboard中有4个按钮,包括BottomSpace和Horizontal Alignment约束.有没有办法访问这些约束常量而不将它们作为出口链接?我想在用户按下按钮时更新这些常量,因此伪代码的理想情况是:
func buttonPressed(_ button: UIButton) {
button.bottomSpaceConstraint.constant += 10
button.horizontalAlignment.constant += 10
}
Run Code Online (Sandbox Code Playgroud)
先感谢您!
为了扩展Stormsyder的答案,有一种更清洁的方法来使用该filter方法做同样的事情.请参阅以下内容:
let bottomConstraint = button.superview!.constraints.filter({ $0.firstAttribute == .bottom && $0.firstItem == button }).first!
let horizontalAllignmentConstraint = button.superview!.constraints.filter({ $0.firstAttribute == .centerX && $0.firstItem == button }).first!
Run Code Online (Sandbox Code Playgroud)
请注意,如果这些约束不存在,这将会崩溃,因此请确保它们安全地执行或解包.
| 归档时间: |
|
| 查看次数: |
3525 次 |
| 最近记录: |