
我在图像和button2之间设置了一个约束(centerX,带有222的文本)同时我用button1设置了一个约束(centerX,带有11的文本)并用950设置优先级然后我将它们拖到vIEwcontroller
这是我的故事板中的约束
这是我控制约束的代码
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,应用程序是现金自我.kIDRightCenterConstrait.active =!isleft
控制台日志是致命错误:在展开Optional值时意外发现nil
解决方法 似乎约束被释放了.您可能会尝试强烈保留约束:@IBOutlet var kIDleftCenterConstrait: NSLayoutConstraint!@IBOutlet var kIDRightCenterConstrait: NSLayoutConstraint!
无论如何要小心可能的保留周期.检查VIEwController是否会在到时之前消失.
我通常会在代码中使用这种动画来管理所涉及的约束.
总结以上是内存溢出为你收集整理的iOS -AutoLayout约束设置活动在第二次崩溃全部内容,希望文章能够帮你解决iOS -AutoLayout约束设置活动在第二次崩溃所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)