iOS 8 Xcode 6:使用顶部/底部布局指南进行顶部/底部约束时,应用程序始终崩溃

Posted

技术标签:

【中文标题】iOS 8 Xcode 6:使用顶部/底部布局指南进行顶部/底部约束时,应用程序始终崩溃【英文标题】:iOS 8 Xcode 6: App consistently crashes when using top/bottom layout guide for top/bottom constraints 【发布时间】:2014-09-02 22:36:40 【问题描述】:

Xcode 6 测试版最近让我心烦。

我的故事板中有以下视图层次结构...

当我从“标题视图”控制拖动到“视图”(反之亦然)时,我只会得到“顶部/底部空间到顶部/底部布局指南”选项,而不是“顶部/底部空间到容器”。当我选择附加到顶部/底部布局指南时,应用程序通常会崩溃。无论如何强制视图从超级视图而不是布局指南构建约束。

或者解决这个问题的最佳方法是什么?!

这是我得到的错误:

2014-09-02 15:38:07.913 BundleUp[2183:103534] The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0x7fb773fb07e0 SCHeaderView:0x7fb773fb05d0.centerX == _UILayoutGuide:0x7fb773facca0.centerX>
    When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break on -[UIView _viewHierarchyUnpreparedForConstraint:] to debug.
2014-09-02 15:38:07.914 BundleUp[2183:103534] *** Assertion failure in -[UIView _layoutEngine_didAddLayoutConstraint:roundingAdjustment:mutuallyExclusiveConstraints:], /SourceCache/UIKit_Sim/UIKit-3302.3.1/NSLayoutConstraint_UIKitAdditions.m:552
2014-09-02 15:38:07.917 BundleUp[2183:103534] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Impossible to set up layout with view hierarchy unprepared for constraint.'

这是在让 Xcode 自己通过选择“重置为建议的约束”来建议约束之后。

【问题讨论】:

【参考方案1】:

如果您开始遇到这种情况,我想出了解决问题的方法。有时,当您创建约束并从 Size Inspector 中删除它们(通过选择约束并点击删除按钮来删除)时,约束实际上并没有被删除,而是灰显。我仍然不知道这意味着什么......为什么他们会留下来,但我知道他们仍然会以某种方式影响布局,正是因为他们的存在导致应用程序崩溃。删除这些约束,一切都会正常运行。有关如何删除灰显约束的信息,请参阅我对 ios 8 Xcode 6: What's the point of the grayed out constraints? 的回答。

【讨论】:

我花了大约一个小时才弄清楚这个问题可能是由您来自的视图以及最终的视图引起的! 灰显意味着不再为当前尺寸等级“安装”约束。如果您在选择约束时查看属性检查器的底部,则可以重新启用“已安装”复选框以使其重新激活。不幸的是,删除它们是导致 Xcode 现在崩溃的原因,并且像这样重新激活它们似乎根本没有帮助:(

以上是关于iOS 8 Xcode 6:使用顶部/底部布局指南进行顶部/底部约束时,应用程序始终崩溃的主要内容,如果未能解决你的问题,请参考以下文章

使用 iOS 7 ***布局指南

与顶部布局指南和底部布局指南的距离相等

安全区域指南未出现在 Xcode 中

从 nib 加载视图尊重 superview 的顶部布局指南(导航栏底部)

iOS 9 Xcode 7 - 应用程序在顶部和底部出现黑条

iOS 9 Xcode 7 - 应用程序在顶部和底部出现黑条