UIScrollView的子节点错误的尾部空间限制

我已经创build了一个新的视图控制器,然后添加一个滚动视图作为根视图的子视图,并将“前导/顶部/尾部/底部空间设置为超视图”为0,以便滚动视图将完全填充其父项。

然后我添加一个button作为滚动视图的子项,空间约束15“超级视图”(即滚动视图)。 因此,我期望button的间距为15到顶部/左/右边界,滚动视图的内容结束于“button+ 15的底部”。 但是button的宽度不正确(在Xcode 5 Interface Builder,iOS 6/7模拟器中testing):

例

它甚至不工作,如果我限制button“等宽度到超视图”! 仍然不占据全宽。

我如何解决这个问题?

find一个好的解决scheme:)这种行为的原因是,滚动视图适应其内容视图大小的实际需要的子视图,并不会自动填充宽度/高度。 如果应该填充宽度,则滚动视图必须至less包含一个填充屏幕宽度的视图。

通过这些步骤,我添加了一个与滚动视图(滚动视图本身,而不是其内容视图区域)等宽的视图,从而导致我的滚动视图最终展开为全angular,因为我还添加了约束“space to superview 0/0/0/0“到滚动视图。

  • 假设一个空视图控制器具有一个根视图
  • 添加滚动视图,在其上设置约束“空间俯视/左/右/底= 0/0/0/0”
  • 添加你的用户界面到滚动视图,但是你想要的和设置约束也是你想要的
  • 添加一个新的视图,重命名为“确保滚动视图填充宽度”,具有以下约束
    • 领导/尾随/顶部空间超级查看(这是滚动视图!)= 0
    • Height 0,因为我们希望它是不可见的,因为视图只是一个帮手
    • 重要部分:select此视图和层次结构中的滚动视图,并将其限制为相等的宽度。 由于滚动视图被限制到它的超级视图,它将会收到一个宽度。 然后这个约束确保了滚动视图的内容视图也(至less)那么宽。