gpt4 book ai didi

ios - 我怎样才能激活以前停用的约束?

转载 作者:搜寻专家 更新时间:2023-10-30 22:04:26 25 4
gpt4 key购买 nike

我保留对我的 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 for myConstrain

此外,它没有动画。我做错了什么?

我遵循 WWDC 2015 的教程:

enter image description here

最佳答案

停用约束与为 View 调用 removeConstraint: 相同。引用documentation .因此,当您删除具有 weak 引用的对象时,将导致对象释放。现在这个对象是 nil 并且激活它根本不会有任何效果。要解决此问题,您需要对约束对象有一个强引用。

@IBOutlet strong var myConstraint: NSLayoutConstraint!

关于ios - 我怎样才能激活以前停用的约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31358463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com