我在Storyboard中有4个按钮,其中包含BottomSpace和Horizontal Alignment约束。有没有办法访问这些约束常量而不将它们作为出口链接?我想在用户按下按钮时更新这些常量,因此伪代码的理想情况是:
func buttonPressed(_ button: UIButton) {
button.bottomSpaceConstraint.constant += 10
button.horizontalAlignment.constant += 10
}
提前谢谢!
答案 0 :(得分:9)
为了扩展Stormsyder的答案,使用var str = 'gbox_asset_locations_list';
var result = str.substring(str.indexOf('_') + 1, str.lastIndexOf('_'));
console.log(result)
方法可以更清晰地完成同样的事情。请参阅以下内容:
filter
请注意,如果这些约束不存在,这将会崩溃,因此请确保它们安全地执行或解包。
答案 1 :(得分:3)
回答swift 3:
func buttonPressed(_ button: UIButton) {
for constraint in button.superview!.constraints {
if constraint.firstAttribute == .bottom {
constraint.constant += 10
}
for constraint in button.constraints {
if constraint.firstAttribute == .centerY {
constraint.constant += 10
}
}
}
答案 2 :(得分:0)
使用此功能可以获得约束:
func buttonPressed(_ button: UIButton) {
let array = button?.superview?.constraints
for constrains in array! {
print( constrains.constant)
}
}