Interface Builder中对UIScrollView的正确约束是什么?来自IB的纯粹Autolayout

时间:2015-12-20 07:47:41

标签: ios uiscrollview interface-builder

我一直试图让ScrollView工作2天,而且根本不起作用。 SO和其他网站上的大多数建议都说您需要将ScrollView固定到root view,然后将ContentView (UIView)置于ScrollView内,然后将其固定到所有ScrollView的两侧(以便scroll size可以确定contentSize ...但这不会做任何事情)。还有相互矛盾的信息,one video表示需要从ScrollView的底部到ContentView存在约束。这两种解决方案都不适用于我。以下是我在尝试的大多数组合中所做的事情:

  1. UIView - > UIScrollView
  2. UIScrollView的所有边固定到UIView
  3. UIView内创建content view(将其命名为place)和UIScrollView
  4. UIView的所有边都固定到UIScrollView
  5. 此时出现问题:UIScrollViewconstraintsXwidth Y需要width。似乎解决投诉的唯一方法是将UIView设置在水平和垂直居中的scroll view内,但这对滚动工作没有任何作用。另一种选择是将UIView等同于heightwidth设置为scroll view,但除此之外,除了删除投诉之外,其他任何事情都没有。

    我不明白。是不是钉在两边,设置约束? IB似乎认为情况并非如此。

    需要哪些正确的约束?我只需要一个带有堆叠controls的简单视图(填写表单),如果表单长于scroll,则屏幕需要能够screen

    我第一次使用iOS,现在纯粹从IB构建......最小的代码解决方案是最好的。

1 个答案:

答案 0 :(得分:0)

你到了一半。首先,您需要确定要在滚动视图中显示的内容,您已经放置了一个需要具有内在大小的内容视图。您可以选择放置静态或动态视图。静态视图将在设计时定义其大小,这将解析UIScrollView AutoLayout约束。如果您在运行时使用动态视图执行此操作,则需要为内容视图选择默认大小,为视图的宽度和/或高度创建IBOutlet,然后在运行时调整它们以在viewDidLayoutSubviews中更改插座。您链接的视频非常清楚地解释了这一点。