【问题标题】:add constraint to an empty scrollview on xib or storyboard ambiguity在 xib 或情节提要歧义上向空滚动视图添加约束
【发布时间】:2019-12-31 14:49:06
【问题描述】:

我在一个view上加了一个empty scrollView,设置了leading/top/trailing/bottom,那么frame是准确的,但是当设置了leading/top/trailing/height时,xib会出现歧义错误!如果我通过代码设置约束,就可以了,为什么???是xib的bug?

【问题讨论】:

  • 我知道如何清除错误,只是想知道上面两种情况导致不同结果的原因吗?

标签: ios autolayout scrollview frame xib


【解决方案1】:

Storyboard / Interface Builder 告诉您,scrollView 具有不明确的内容大小,因为它没有内容。

您可以:

  • 忽略 IB 中指出的这个“错误”,或者
  • 您可以添加 UIView 作为 scrollView 的子视图(设置适当的约束),然后在运行时删除该视图或将您的 UI 元素添加到其中(而不是直接添加到 scrollView)。李>

附带说明...如果您的整个 XIB 文件只包含一个滚动视图,请不要这样做。只需使用滚动视图。如果这只是您的第一步,并且您将在继续设计过程时将 UI 元素添加到 XIB 中的滚动视图,那么您将在添加元素并设置正确的约束。

【讨论】:

  • 谢谢,我知道该怎么做,但是为什么呢?如果设置"leading/top/trailing/bottom",它也没有内容,但没有错误。
  • 界面生成器/情节提要不是“运行时”。它只能知道您布置了什么,以及您设置的约束。它无法通过代码知道您将如何处理该布局。在UIScrollView 的情况下,IB 告诉您滚动视图 还没有 约束来确定内容大小。这就是为什么我说您可以忽略错误/警告/信息 - 针对特定情况 - 如果您知道您将在运行时正确添加内容。
【解决方案2】:

您需要将 view 添加到您的 scrollView 并将它们与前导/顶部/尾随/底部约束链接。此外,您还必须设置 height/width 约束以仅添加 view 以消除歧义。

【讨论】:

    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 2014-12-04
    • 2017-06-18
    • 1970-01-01
    • 2015-04-14
    • 2017-02-03
    • 1970-01-01
    • 2020-05-31
    相关资源
    最近更新 更多