我保留对NSLayoutConstraint
var flag = true
@IBOutlet weak var myConstraint: NSLayoutConstraint!
然后对于某些@IBAction
我根据我的flag
变量激活/停用:
@IBAction func tapped(sender: UIButton) {
flag = !flag
UIView.animateWithDuration(1.0) {
if self.flag {
NSLayoutConstraint.activateConstraints([self. myConstraint])
} else {
NSLayoutConstraint.deactivateConstraints([self. myConstraint])
}
}
}
但是,当我再次调用我的操作时,unexpectedly found nil while unwrapping an Optional value
出现错误myConstrain
。
更多关于它没有动画。我做错了什么?
我遵循WWDC 2015的教程:
答案 0 :(得分:16)
取消激活约束与为视图调用database1
相同。请参阅documentation。因此,当您删除具有removeConstraint:
引用的对象时,将导致对象取消分配。现在这个对象是weak
,激活它根本就没有任何效果。要解决此问题,您需要强烈引用约束对象。
nil