带有Autolayout的UIScrollView失败,并在启动时消失

时间:2015-10-08 11:10:14

标签: ios uiscrollview autolayout interface-builder ios9

我试图用autolayout包围UIScrollView。我知道这已被问过很多次,但没有任何解决办法对我有用。

视图层次结构为:

view (UIView)
  - scrollView (UIScrollView)
      - contentView (UIView)
          - label (UILabel)

约束是(按照建议here和其他地方):

滚动视图:

  • 领先空间至集装箱保证金
  • 尾随空间到容器边距
  • 垂直间距到顶部布局指南
  • 垂直间距到底部布局指南

内容查看:

  • 领先空间至集装箱保证金
  • 尾随空间到容器边距
  • 与容器上边距的垂直间距
  • 与容器底部边距的垂直间距
  • 等于“查看”的宽度

(...也就是说,将所有四边固定在滚动视图上,将一个尺寸固定在滚动视图的超视图上)。

这给了我错误:

  

Scroll View需要约束:height。

我进一步在内容视图中添加标签,并将其宽度,高度,前导空间和垂直空间约束到容器顶部(即固定大小,并固定到contentView的左上角)。 / p>

但是,它出现在红色框架中,但左窗格中没有建议丢失约束(仅限滚动视图)。

无论如何我添加了所有缺失的约束:导航窗格中的红色八角形按钮 - 用于滚动视图 - 和“| -triangle- |”右下角的按钮(选择了标签)

当我启动应用时,我的布局会短暂显示,然后渐变为白色(视图控制器的视图背景颜色)。

2 个答案:

答案 0 :(得分:1)

我昨天也犯了同样的错误。您可能已将接口放在LaunchScreen.storyboard而不是Main.Storyboard或类似。启动屏幕仅提供启动屏幕。关于你的自动布局问题,我建议使用内置的“重置建议约束”功能。

答案 1 :(得分:1)

这是您的视图层次结构

view (UIView)
  - scrollView (UIScrollView)
      - contentView (UIView)
          - label (UILabel)

您添加的所有约束都是okey但您必须根据滚动在contentView上再添加一个约束。

如果您想要修复高度基础滚动,则必须在内容视图上添加高度约束。 如果你想动态比你为scrollview添加约束相等的高度,而不是设置相等高度约束的muliplier