Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS-自动布局约束集处于活动状态将在第二次崩溃_Ios_Swift_Autolayout - Fatal编程技术网

iOS-自动布局约束集处于活动状态将在第二次崩溃

iOS-自动布局约束集处于活动状态将在第二次崩溃,ios,swift,autolayout,Ios,Swift,Autolayout,我想实现一个功能,当我点击按钮时,图像将在两个按钮之间移动 我在图像和按钮2(centerX,其中文本为222)之间设置了一个约束,同时我也用按钮1(centerX,其中文本为11)设置了一个约束,并用950设置了优先级,然后我将它们拖动到视图控制器 这是我故事板中的限制 这是我控制约束的代码 if NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1 { self.kidLeftCenter

我想实现一个功能,当我点击按钮时,图像将在两个按钮之间移动

我在图像和按钮2(centerX,其中文本为222)之间设置了一个约束,同时我也用按钮1(centerX,其中文本为11)设置了一个约束,并用950设置了优先级,然后我将它们拖动到
视图控制器

这是我故事板中的限制

这是我控制约束的代码

if NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1 {

            self.kidLeftCenterConstrait.active = isLeft
            self.kidRightCenterConstrait.active = !isLeft
            UIView.animateWithDuration(kAnimationDuration, animations: { () -> Void in
                self.view.layoutIfNeeded()
          })

       } else {
            let constraintToRemove = isLeft ? self.kidRightCenterConstrait : self.kidLeftCenterConstrait
            let constriaintToUse = isLeft ? self.kidLeftCenterConstrait : self.kidRightCenterConstrait
            self.douBi.superview!.removeConstraint(constraintToRemove)
            self.douBi.superview!.removeConstraint(constriaintToUse)
            self.douBi.superview!.addConstraint(constriaintToUse)
            UIView.animateWithDuration(kAnimationDuration, animations: { () -> Void in
            self.view.layoutIfNeeded()
      })
 }
在iphone上运行后 我单击按钮1,图像移动到11,然后单击按钮2,应用程序是cash in
self.kidRightCenterConstrait.active=!isLeft


控制台日志是
致命错误:在展开可选值时意外发现nil

约束似乎已释放。您可以尝试强烈保留您的约束:

@IBOutlet var kidLeftCenterConstrait: NSLayoutConstraint!
@IBOutlet var kidRightCenterConstrait: NSLayoutConstraint!
无论如何,请注意可能的保留周期。检查ViewController是否在时机成熟时消失


我通常在代码中管理所涉及的约束来制作这种动画。

您为什么不使用
removeConstraint
addConstraint
?我尝试过,在
kidRightCenterConstrait
中崩溃了。您认为文档中会提到这一点吗。