以编程方式获取uibutton的约束

iDe*_*Dec 3 ios nslayoutconstraint swift

我在Storyboard中有4个按钮,包括BottomSpace和Horizo​​ntal Alignment约束.有没有办法访问这些约束常量而不将它们作为出口链接?我想在用户按下按钮时更新这些常量,因此伪代码的理想情况是:

func buttonPressed(_ button: UIButton) {
      button.bottomSpaceConstraint.constant += 10
      button.horizontalAlignment.constant += 10
}
Run Code Online (Sandbox Code Playgroud)

先感谢您!

Jac*_*ing 9

为了扩展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)

请注意,如果这些约束不存在,这将会崩溃,因此请确保它们安全地执行或解包.