如何以编程方式更改Swift中NSLayoutConstraint的Size Class变体

dum*_*dad 5 swift

我可以在Swift中更改简单的NSLayoutConstraint,它们是在故事板中设置的.例如,这是我的故事板中的宽度约束

<constraint firstAttribute="width" constant="600" id="EGo-Al-B35"/>
Run Code Online (Sandbox Code Playgroud)

这是我在Swift中改变它的方式(我在UIViewController的子类的viewDidLoad覆盖中这样做):

let newVaue:CGFloat = CGFloat(414) // Actually some working out here
self.constraintOutlet.constant = newVaue
self.constraintOutlet.setNeedsUpdateConstraints() 
Run Code Online (Sandbox Code Playgroud)

但并非我想要更新的所有约束都那么简单.特别是一些使用自动布局的大小类来提供横向约束的修订值.以下是我的故事板中的示例

<constraint firstItem="kcH-BX-CS6" firstAttribute="top" secondItem="nvV-Xd-fnh" secondAttribute="bottom" id="I6B-Lp-edd">
    <variation key="heightClass=compact" constant="250"/>
</constraint>
Run Code Online (Sandbox Code Playgroud)

如何从Swift代码中更改变量的常量?