【发布时间】:2018-04-11 08:55:55
【问题描述】:
我正在加载一个视图控制器,它有一个可以采用不同大小的视图。大小在“viewDidLayoutSubviews”中设置,可能与发送到视图的参数不同。
我在视图中使用自动布局,它由 2 个彼此下方的标签(标题 + 错误)、一个表格视图和两个并排的按钮(确认 + 取消)组成。
视图加载完美,但我仍然收到此消息:
* Xcode 对约束大喊大叫,然后指定哪一个似乎是问题*
(
"<_UILayoutSupportConstraint:0x604000281040 _UILayoutGuide:0x7f84ce652de0.height == 0 (active)>",
"<_UILayoutSupportConstraint:0x604000289830 _UILayoutGuide:0x7f84ce652de0.bottom == UIView:0x7f84ce66fea0.bottom (active)>",
"<NSLayoutConstraint:0x60000048b630 UIButton:0x7f84ce4b3c60'Continuer'.height == 60 (active)>",
"<NSLayoutConstraint:0x6040002963a0 UILabel:0x7f84ce670bd0'Sexe'.top == UILayoutGuide:0x6040001b2520'UIViewSafeAreaLayoutGuide'.top + 5 (active)>",
"<NSLayoutConstraint:0x6040002967b0 V:[UILabel:0x7f84ce670bd0'Sexe']-(0)-[UILabel:0x7f84ce43a770'Error'] (active)>",
"<NSLayoutConstraint:0x60400028c4e0 V:[UILabel:0x7f84ce43a770'Error']-(5)-[UITableView:0x7f84ce850000] (active)>",
"<NSLayoutConstraint:0x60400028c3a0 V:[UITableView:0x7f84ce850000]-(0)-[UIButton:0x7f84ce4b3c60'Continuer'] (active)>",
"<NSLayoutConstraint:0x60400028f0a0 V:[UIButton:0x7f84ce4b3c60'Continuer']-(0)-[_UILayoutGuide:0x7f84ce652de0] (active)>",
"<NSLayoutConstraint:0x60000048cda0 'UIView-Encapsulated-Layout-Height' UIView:0x7f84ce66fea0.height == 0 (active)>",
"<NSLayoutConstraint:0x604000296670 'UIViewSafeAreaLayoutGuide-top' V:|-(0)-[UILayoutGuide:0x6040001b2520'UIViewSafeAreaLayoutGuide'] (active, names: '|':UIView:0x7f84ce66fea0 )>"
)
知道是什么限制给我带来了这样的麻烦吗? (我可以发布完整的 Xcode 消息,但我不想发垃圾邮件。)
【问题讨论】:
-
发布完整的 Xcode 消息 :)
-
首先,从这个日志你应该可以看出问题出在纵轴上。其次,Xcode 还指定它决定“打破”哪些约束。该消息还包含您可以调试哪个异常的提示,然后如果需要手动调试,您可以从日志中查找如何通过引用查找视图。请注意,被布局引擎“破坏”的约束不一定是导致问题的原因,而不是删除它,您应该分析垂直轴上的所有约束。
-
我有这两个:将尝试通过打破约束来恢复 <0x60000048b630 uibutton:0x7f84ce4b3c60><0x60400028c4e0 v:>0x60400028c4e0>0x60000048b630>
标签: ios xcode storyboard constraints