gpt4 book ai didi

iOS - AutoLayout 约束设置激活在第二次崩溃

转载 作者:搜寻专家 更新时间:2023-10-31 08:09:10 24 4
gpt4 key购买 nike

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

我在image和button2(centerX,which text with 222)之间设置了一个constraint 同时我也设置了button1(centerX,which text with 11)的constraint 并且设置了priority为950 然后我把它们拖到 View Controller

这是我 Storyboard中的约束 enter image description here

这是我控制约束的代码

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 ,应用程序是现金 self.kidRightCenterConstrait.active = !isLeft

控制台日志是 fatal error :在展开可选值时意外发现 nil

最佳答案

看来限制已解除。您可能会尝试强烈保留您的约束:

@IBOutlet var kidLeftCenterConstrait: NSLayoutConstraint!
@IBOutlet var kidRightCenterConstrait: NSLayoutConstraint!

无论如何要注意可能的循环保留。检查您的 ViewController 是否在时机成熟时消失。

我通常会做这种动画,在代码中管理所有涉及的约束。

关于iOS - AutoLayout 约束设置激活在第二次崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898681/

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