Ios 视图层次结构未为IB中添加到子视图的高度约束做好准备

Ios 视图层次结构未为IB中添加到子视图的高度约束做好准备,ios,objective-c,Ios,Objective C,我正在尝试使用自动布局定位自定义UIView子类 该视图在应用程序的主情节提要中初始化,其中有一个子视图,在VC的视图中设置了自定义类。相应地,定制视图有自己的头文件和实现文件,用于更精细的编程定制,但在这一点上都是空白的。这一切似乎都在工作-调试器显示子视图的(空白)initWithCoder选择器被调用,我可以通过向superview添加对齐约束来获得一些基本布局…假设它们是双关系布局(例如,第一项与第二项相关) 当我使用IB向视图添加高度约束时,问题就出现了。应用程序启动时崩溃: The

我正在尝试使用自动布局定位自定义UIView子类

该视图在应用程序的主情节提要中初始化,其中有一个子视图,在VC的视图中设置了自定义类。相应地,定制视图有自己的头文件和实现文件,用于更精细的编程定制,但在这一点上都是空白的。这一切似乎都在工作-调试器显示子视图的(空白)initWithCoder选择器被调用,我可以通过向superview添加对齐约束来获得一些基本布局…假设它们是双关系布局(例如,第一项与第二项相关)

当我使用IB向视图添加高度约束时,问题就出现了。应用程序启动时崩溃:

The view hierarchy is not prepared for the constraint: <NSLayoutConstraint:0x9339140 V:[IconButton:0x9339c20(50)]>
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.
未为约束准备视图层次结构:
添加到视图时,约束项必须是该视图(或视图本身)的后代。如果在装配视图层次之前需要解决约束,则此操作将崩溃。中断-[UIView\u viewHierarchyUnpreparedForConstraint:]以进行调试。

我在其他用例中使用自动布局已经有一段时间了,我非常熟悉更常见的不明确和/或冲突布局,但这是一个更为罕见的错误,似乎与此无关(IB没有检测到任何冲突)

错误消息表示添加到视图的superview的约束不是其superview的子视图(如果有意义的话)。希望我没有让您更加困惑。请使用[UIView recursiveDescription]检查您期望的每个视图是否都是正确超级视图的子视图。参考: