我有一个看起来像这样的视图层次结构(基于其他答案和Apple的高级AutoLayout指南,用于使用UIScrollView):
ScrollView所需的 2步是:
第1步起初工作正常,结果就是这样:
预期位置和尺寸没有问题。我现在只需要在Interface Builder中使用第2步来定义内容大小(内容高度和内容宽度)。
现在我添加了触及ScrollView所有4个边缘的约束,如下所示:
突然间,ScrollView不再知道它的位置和尺寸(框架)了。
我查看了其他答案,并按照各个步骤进行操作,但似乎无法解决此问题。抱歉,由于隐私问题,我无法发布Storyboard截图
答案 0 :(得分:12)
将滚动视图的顶部,底部,前导,尾随约束设置为其超级视图为0.
设置滚动视图内的视图,并将其顶部,底部,前导,尾部约束设置为其超级视图为0.
选择滚动视图内的视图,转到尺寸检查器并将“内在尺寸”设置为“占位符”。
答案 1 :(得分:8)
滚动视图一开始可能有点棘手。你真的有3个部分:
所以,1。非常简单。
第二部分似乎也是直截了当的,除了我们倾向于将子视图“固定”到其超视图的内边缘。在滚动视图子视图的情况下,那些约束是定义contentSize的内容。您还必须确保子视图具有“大小”。
从一个子视图开始,您将:
运行该应用。假设您设置背景颜色以便知道您正在查看的内容,您应该看到滚动视图的位置和大小正如您所期望的那样......您应该看到100 x 100的子视图位于滚动视图内的某个位置...并且您可能无法进行任何实际滚动。
如果您返回并将子视图更改为100 x 800,并且仍将其底部约束固定到滚动视图的底部(子视图的超级视图),然后再次运行该应用程序...您 能够向上和向下滚动以查看子视图的完整800点高度。
考虑它的方法是:滚动视图的内容 - 无论是一个还是多个子视图 - 必须定义其自己的大小,这将定义可滚动区域(滚动视图的contentSize)。
希望有意义!