Interface Builder 中具有空 UIStackView 的 UIScrollView 的约束错误

Constraint error for UIScrollView with an empty UIStackView in Interface Builder

我正在关注 Stack View Apple tutorial 的“Dynamic Stack View”部分,我 运行 遇到了 Interface Builder 中的约束问题如果我将 UIStackView(在 UIScrollView 内)留空,而不是在其中放置 UIButton。我希望我的 UIViewController 动态创建所有 arrangedSubviews,所以我不想在其中留下一个 UIView,我只需要以编程方式处理或删除它。

我可以忽略这个错误,它仍然会按照我的意愿工作,没有运行时约​​束错误。但是,我不想在 xib/nib.

中留下约束问题

满足 Interface Builder 的最干净的方法是什么?如果我添加一个具体的高度约束,那么我必须为它创建一个出口并以编程方式将其删除。这似乎过于具有侵略性,我宁愿尽可能多地在 xib/nib 中保留自动布局。

事实证明,为了满足 Interface Builder 的要求,UIScrollView 的内容需要有一个高度,而它不会假设为 0 的高度。所以由于 UIStackView 是内容视图,它需要有一个高度。即使在运行时它会有内容,因此会有高度,Interface Builder 需要有一个回退。因此,设置 Intrinsic Size.

它在尺寸检查器的底部:

内部大小默认(系统定义)更改为占位符并设置身高随心所欲。在 Interface Builder 中设计时提供足够大的帮助可能是个好主意。您可以将 Width 设置为任何值,或选中 None 复选框。