Autolayout之使用Scroll View

2019-03-03  本文已影响0人  我才是臭吉吉

注:本文翻译自Working with Scroll Views

当使用ScrollView时,你需要在父视图内同时定义ScrollView的尺寸和位置,额外还有ScrollView的内容区域。所有的这些特性都可以通过Auto Layout进行设置。

为了支持ScrollView,系统会基于约束所处的位置,使用不同的方式来诠释约束。

对于大多数通常的布局来说,如果你对ScrollView的内容使用虚拟视图或是组合的方式进行布局,逻辑将会变得非常简单。当使用Interface Builder时,通常的做法如下所示:

  1. 在场景中添加ScrollView
  2. 像平常一样,设置约束来定义ScrollView的尺寸和位置。
  3. 添加一个视图到ScrollView上。设置该视图的Xcode指定标签到ScrollView的内容视图(即ContentView,以下直接使用)上。
  4. 设置ContentView的顶部、底部、头部和尾部边界到ScrollView的对应边界上。ContentView现在决定了ScrollView的内容区域。

    重点:

    此时ContentView还没有一个确定的尺寸。它可以拉伸或压缩来适配任何你放入的视图或控件。

  5. (可选)要禁止水平滑动,将ContentView的宽度设置为与ScrollView宽度相同。ContentView现在在水平方向上充满了ScrollView。
  6. (可选)要禁止垂直滑动,将ContentView的高度设置为与ScrollView高度相同。ContentView现在在竖直方向上充满了ScrollView。
  7. 将ScrollView的内容布局到ContentView内部。像往常一样,在ContentView内部使用约束来设置内容的位置。

    重点:

    你的布局必须完整定义了ContentView的尺寸(除了步骤5和6定义的位置)。要设置基于真实内容尺寸视图的ContentView的高度,你必须从ContentView的顶部到底部设置一个未被打破(broken)的约束和视图链。相似的,要设置该ContentView的宽度,你就必须从ContentView的头部到尾部设置一个未被打破(broken)的约束和视图链。

    如果你的内容控件没有真实内容尺寸,你就必须添加合适的尺寸约束,或者是设置ContentView的,或者就设置内容的。

    当ContentView比ScrollView高时,ScrollView在竖直方向上便可以滑动了。当ContentView比ScrollView宽时,ScrollView在水平方向上就可以滑动了。否则,默认来说ScrollView的滑动是被禁止的。

上一篇 下一篇

猜你喜欢

热点阅读