滚动视图+ XIB中的自动布局:模糊的可滚动内容宽度

时间:2015-09-08 08:40:18

标签: ios uiscrollview autolayout xib

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

layout

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

hier_1

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

ib_error

关于这个问题我已经read up,我发现我需要将我的滚动视图作为子视图添加到一个简单的视图中以使这个警告无声,但是不能使它工作(视图由于某种原因没有滚动)。

我想我理解这里的错误:滚动视图不知道它可以横向滚动多远,但是我发现没有办法在IB中指定它(而不是将其设置为具体的价值 - 我不想要的。)

当我尝试向我的hiearachy添加另一个视图并将其前导,尾随和底边约束到滚动视图时,问题更加明显:

scrollgif

视图无法弄清楚它的宽度,因此搞乱了滚动。

我的问题如下:有没有一种摆脱这种歧义的好方法?在Storyboards中,您只需向根视图添加相同的高度/宽度约束,但这不是XIB的选项。

1 个答案:

答案 0 :(得分:1)

好的,所以我设法通过以下步骤解决了这个问题:

  1. 使用以下层次结构:xib的视图(“主视图”) - >附加视图(“根视图”) - >滚动视图 - >附加视图(“内容视图”)
  2. hierarchy

    1. 将根视图的边缘固定到主视图,以便填充屏幕。对滚动视图执行相同操作(将其边缘固定到根视图)。
    2. 在根视图和内容视图之间定义“等宽”约束。 仅限约束宽度非常重要。我的错误是也限制了高度,这导致滚动视图不滚动。
    3. 将任何子视图添加到内容视图。重要说明:您必须在子项之间定义正确的垂直约束,否则,内容视图的高度将为零。
    4. vertical

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

      final

相关问题