[英]Unable to simultaneously satisfy constraints - Swift
总结:我刚刚完成了自动布局,当我运行它时,它全部被压缩在一起。 然后我查看命令提示符,上面写着错误。 我试过用谷歌搜索它,但它只显示了 Obj-C 的解决方案,我正在 Swift 中进行。 我怎样才能解决这个自动布局问题?
错误:
2014-10-20 00:07:41.102 Fraction Calculator[74247:6698760] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x7c440f10 V:[UIButton:0x7c440db0'Divide It!'(30)]>",
"<NSLayoutConstraint:0x7af7bdb0 V:[UIImageView:0x7af7bae0(8)]>",
"<NSLayoutConstraint:0x7ae928b0 V:[UITextField:0x7ae952d0(30)]>",
"<NSLayoutConstraint:0x7ae97110 V:[UITextField:0x7ae96f70(30)]>",
"<NSLayoutConstraint:0x7ae97eb0 V:[UILabel:0x7ae97d70'Enter Your Fraction To Be...'(48)]>",
"<NSLayoutConstraint:0x7ae99cd0 V:[_UILayoutGuide:0x7ae990c0]-(0)-[UILabel:0x7ae97d70'Enter Your Fraction To Be...']>",
"<NSLayoutConstraint:0x7ae9a000 V:[UILabel:0x7ae97d70'Enter Your Fraction To Be...']-(41)-[UITextField:0x7ae96f70]>",
"<NSLayoutConstraint:0x7ae9a090 V:[UITextField:0x7ae96f70]-(14)-[UIImageView:0x7af7bae0]>",
"<NSLayoutConstraint:0x7ae9a150 V:[UIImageView:0x7af7bae0]-(13)-[UITextField:0x7ae952d0]>",
"<NSLayoutConstraint:0x7ae9a270 V:[UITextField:0x7ae952d0]-(59)-[UIButton:0x7c440db0'Divide It!']>",
"<NSLayoutConstraint:0x7ae9a2a0 V:[UIButton:0x7c440db0'Divide It!']-(50)-[UILabel:0x7ae98df0]>",
"<NSLayoutConstraint:0x7ae9a300 V:[UILabel:0x7ae98df0]-(166)-[_UILayoutGuide:0x7ae99680]>",
"<_UILayoutSupportConstraint:0x7c441e80 V:[_UILayoutGuide:0x7ae990c0(20)]>",
"<_UILayoutSupportConstraint:0x7c441770 V:|-(0)-[_UILayoutGuide:0x7ae990c0] (Names: '|':UIView:0x7af7abc0 )>",
"<_UILayoutSupportConstraint:0x7c443610 V:[_UILayoutGuide:0x7ae99680(0)]>",
"<_UILayoutSupportConstraint:0x7c4429d0 _UILayoutGuide:0x7ae99680.bottom == UIView:0x7af7abc0.bottom>",
"<NSLayoutConstraint:0x7c44acf0 'UIView-Encapsulated-Layout-Height' V:[UIView:0x7af7abc0(480)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7ae97eb0 V:[UILabel:0x7ae97d70'Enter Your Fraction To Be...'(48)]>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
我的约束图片https://www.dropbox.com/s/1l3ys9k7bdr8qrk/Screenshot%202014-10-20%2021.08.47.png?dl=0我的 iPhone 4 预览图片https://www.dropbox .com/s/7uoulzppalex2r8/Screenshot%202014-10-20%2021.09.48.png?dl=0模拟器中 iPhone 4 的图像https://www.dropbox.com/s/c1qedgoytcnetri/iOS%20Simulator% 20Screen%20Shot%20Oct%2020%2C%202014%2C%209.10.03%20PM.png?dl=0
如果你们有问题或需要澄清,请在下面评论
仅通过查看您发布的错误来跟踪哪个是不好的约束会有点困难。 但是在使用自动布局或一般约束时,我可以给出一般规则或要记住的事情,
在您的错误中,我看到许多具有固定大小的约束,当您对这些视图有间距约束时,它们会干扰。 所以从第一个开始,保留我提到的要点并删除您不需要的约束。
参考,
我很难弄清楚是什么限制导致了这个错误。 这是一个更简单的方法。
我正在使用 Xcode 6.1.1
“Command + A”选择所有 UILabels、UIImages 等。点击 Editor -> Pin > (Select...) to Superview 再次点击 Editor -> Resolve Auto Layout Issues -> Add Missing Constraints or Reset to Suggested Constraints。 这取决于你的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.