すでにインストールされている制約の優先度を変更する方法がわかりませんでした。
NSLayoutConstraint
の優先度を変更するのは安価な操作であり、優先度と.LessThanOrEqual
+ .GreaterThanOrEqual
組み合わせをアニメーションに使用することは、Appleが提案していることです。
このためのラッパーを追加するのも良いかもしれません。 インストールします
x ≦ 40
x ≧ 40 with priority P
x ≧ 20 with priority P + 1
次に、最後の制約の優先度をP - 1
とP + 1
間で変更することにより、xを40と20の間で切り替えることができます。
snp_updateConstraints
介して優先順位を変更できるようにするのがおそらく最善です。 これが何を伴うのか、そしてそれが何らかの影響を与えるのかどうかを見ていきます。
@danieleggert開発ブランチは、優先度の更新をサポートするようになりました。
var constraint: Constraint? = nil
view.snp_makeConstraints { (make) -> Void in
constraint = make.edges.equalTo(UIEdgeInsetsMake(10,10,10,10)).priorityHigh()
}
constraint?.updatePriorityLow()
こんにちは@robertjpayne !
最後のコメントで述べたように、優先度を更新しようとしています。
しかし、私はこのエラーが発生しました:
問題に見えるのは? Snapkit4.0.0の使用
最も参考になるコメント
@danieleggert開発ブランチは、優先度の更新をサポートするようになりました。