最好的方法是什么,停用约束或更改优先级?

What is the best approach, deactivating constraints or changing the priority?

我对 quick 不太了解,AutoLayout。由于我正在尝试使用一些 UIElement 制作多个动画,我需要 deactivate/activate 约束还是应该使用锚点的优先级?

您可以观看 WWDC video about Auto Layout tech. The core of auto layout is Linear Programming. It use constraint solver 来解决那些线性问题。

WiKi中的图像,自动布局的规则与Problem constraints相同,并且只有全局最优解来解决这些约束。如果没有解决这些约束的全局最优解,那么这些规则就会发生冲突。


从 WWDC 视频中,我学会了定义约束组来实现动画,方法是停用 A 组,然后激活 B 组。有时候喜欢修改约束的属性来实现动画效果。如果这种方法使我的代码简洁易懂,那么我会采用这种方法。

属性:有效

Apple official document

自动布局约束可以从 xibstoryboard 绑定到 @IBOutletNSLayoutConstraint 有一个名为 isActive 的 属性。您可以定义约束组。但是在你激活/取消激活约束之前,总是先取消激活。为了避免约束冲突。我从 WWDC 视频中得到了这个。

属性:常量,乘数

您可以更改 UIViewmultiplier and constant of a constraint in runtime. After updating properties of a constraint, call setNeedsupdateConstraints and updateConstraintsifNeeded 以应用这些更改。