XIB 中的滚动视图 + 自动布局:不明确的可滚动内容宽度

Scroll views + Auto Layout in XIB: ambiguous scrollable content width

我有以下简单的布局:只是一个滚动视图,其中有一些视图(请原谅预览截图,因为我使用的是 XIB,无法缩小):

这是我的视图层次结构+约束(垂直约束都设置好了,贯穿整个视图):

我在这种情况下的问题是我在 Interface Builder 中收到以下错误:

我已经 read up 解决了这个问题,我发现我需要将我的滚动视图作为子视图添加到简单视图中以消除此警告,但无法使其正常工作(视图由于某种原因没有滚动)。

我想我理解这里的错误:滚动视图不知道它可以水平滚动多远,但我没有找到在 IB 中指定它的方法(而不是将它设置为具体值 -我不想要)。

当我尝试将另一个视图添加到我的层次结构并将其前导、尾随和底部边缘限制到滚动视图时,问题更加明显:

视图无法确定其宽度,因此滚动混乱。

我的问题如下:有什么好的方法可以消除这种歧义吗?在情节提要中,您可以只向根视图添加相等的 height/width 约束,但这不是 XIB 的选项。

好的,我已经通过以下步骤解决了这个问题:

  1. 使用以下层次结构:xib 的视图 ("main view") -> 附加视图 ("root view") -> 滚动视图 -> 附加视图 ("content view")

  1. 将根视图的边缘固定到主视图以便填满屏幕。对滚动视图执行相同操作(将其边缘固定到根视图)。
  2. 定义根视图和内容视图之间的 "Equal Widths" 约束。 限制宽度很重要。我的错误是还限制了高度,导致滚动视图不滚动。
  3. 将任何子视图添加到内容视图。重要说明:您必须在子项之间定义适当的垂直约束,否则内容视图的高度将为零。

应该就是这样!没有更多的错误,绝对没有尴尬的滚动故障。