以编程方式设置约束优先级

时间:2019-05-24 14:20:45

标签: swift autolayout nslayoutconstraint

我需要以编程方式重新创建基于.xib的布局。

我在很大程度上能够实现这一目标,但是无法设置我的主播之一的优先级。

我要在代码中重现的设置是:

xib constraints

我认为我可以使用setContentHuggingPriority(.init(999), for: .vertical)进行设置,但这没有效果。

如何在代码中定位此属性?

2 个答案:

答案 0 :(得分:0)

一个例子:

let constraint = firstView.widthAnchor.constraint(equalTo: secondView.widthAnchor)
    constraint.priority = UILayoutPriority(999)
    constraint.isActive = true

答案 1 :(得分:0)

我知道这太迟了,但是如果有帮助的话,在这里。因此,如果您想优先玩游戏,将需要2个约束。

private var _constraintToManageHQ:NSLayoutConstraint?
_constraintToManageHQ = _viewHBar1.topAnchor.constraint(equalTo: _lblAddress.bottomAnchor, constant: 14.0)
_constraintToManageHQ!.isActive = true
_constraintToManageHQ!.priority = UILayoutPriority(rawValue: 995)

其他具有默认优先级1000的约束

_viewHBar1.topAnchor.constraint(equalTo: _containerHeadQuater.bottomAnchor, constant: 14.0).isActive = true

然后一次 _containerHeadQuater.removeFromSuperview()从超级视图中删除,您的_constraintToManageHQ优先级较低,并保持UI稳定。

相关问题