以编程方式满足两个自动布局约束 - Swift
satisfying two auto layout constraints programmatically - Swift
我想设置一个 UIButton
具有自动布局约束:
基本上我希望高度是容器视图高度的乘数:
button.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.43).isActive = true
如果高度没有达到常数44我想把它设置为44,我添加了这个:
button.heightAnchor(greaterThanOrEqualToConstant: 44).isActive = true
显然像这样以编程方式设置 2 个约束会导致冲突,有没有办法以编程方式完成这 2 个先决条件而不引起警告?
您要么设置低优先级
let con = button.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.43)
con.layoutPriority //////////////
con.isActive = true
或者自己数学计算然后用if语句决定
您需要为“比率”约束设置较低的优先级
let constraint = button.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.43)
constraint.priority = .defaultHigh
constraint.isActive = true
如果引擎仍然无法确定布局,您可以尝试不同的优先级值。
我想设置一个 UIButton
具有自动布局约束:
基本上我希望高度是容器视图高度的乘数:
button.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.43).isActive = true
如果高度没有达到常数44我想把它设置为44,我添加了这个:
button.heightAnchor(greaterThanOrEqualToConstant: 44).isActive = true
显然像这样以编程方式设置 2 个约束会导致冲突,有没有办法以编程方式完成这 2 个先决条件而不引起警告?
您要么设置低优先级
let con = button.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.43)
con.layoutPriority //////////////
con.isActive = true
或者自己数学计算然后用if语句决定
您需要为“比率”约束设置较低的优先级
let constraint = button.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.43)
constraint.priority = .defaultHigh
constraint.isActive = true
如果引擎仍然无法确定布局,您可以尝试不同的优先级值。