【问题标题】:Scroll views + Auto Layout in XIB: ambiguous scrollable content widthXIB中的滚动视图+自动布局:模糊的可滚动内容宽度
【发布时间】:2015-12-03 20:37:55
【问题描述】:

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

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

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

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

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

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

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

我的问题如下:有什么好方法可以消除这种歧义吗?在 Storyboards 中,您可以将相等的高度/宽度约束添加到根视图,但这不是 XIB 的选项。

【问题讨论】:

  • @Bharat,感谢您的评论,但如果您已阅读问题,则此链接已包含在内。 :)
  • 我在您的问题中没有看到此链接。无论如何,您是否尝试过帖子中描述的步骤?
  • @Bharat 是的,在 cmets 中,有人建议将视图添加为超级视图:这样,警告就会消失,但滚动不起作用。

标签: ios uiscrollview autolayout xib


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 2018-07-28
    • 1970-01-01
    相关资源
    最近更新 更多