界面生成器中带有空 UIStackView 的 UIScrollView 的约束错误

Posted

技术标签:

【中文标题】界面生成器中带有空 UIStackView 的 UIScrollView 的约束错误【英文标题】:Constraint error for UIScrollView with an empty UIStackView in Interface Builder 【发布时间】:2016-09-19 07:12:34 【问题描述】:

我正在关注 Stack View Apple tutorial 的“动态堆栈视图”部分,如果我离开 UIStackView(在 @ 987654327@) 为空,而不是在其中放入 UIButton。我希望我的UIViewController 动态创建所有arrangedSubviews,所以我不想在其中留下一个UIView,我只需要以编程方式处理或删除。

我可以忽略该错误,它仍然可以按我的意愿工作,没有运行时约​​束错误。但是,我不想在我的 xib/nib 中留下约束问题。

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

【问题讨论】:

【参考方案1】:

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

它在尺寸检查器的底部

Intrinsic SizeDefault (System Defined) 更改为 Placeholder 并将 Height 设置为您想要的任何值.在 Interface Builder 中进行设计时提供足够大的帮助可能是个好主意。您可以将 Width 设置为任意值,或选中 None 复选框。

【讨论】:

感谢您在这里发布您的解决方案!

以上是关于界面生成器中带有空 UIStackView 的 UIScrollView 的约束错误的主要内容,如果未能解决你的问题,请参考以下文章

swift2.0中带有UIKeyboard的UIStackview

名称中带有空格的 SQLite 列

Swift UIStackView 利用 UIStackView 的全宽

具有静态间距的UIStackView子类

UIStackView 在容器视图中的行为不可预测

获取名称中带有空格的频道的统计信息