ScrollView中使用AutoLayout

在ScrollView使用AutoLayout有些特殊,因为虽然ScrollView本身可以通过定义上下左右边距来固定大小,但是其中内容不能直接定义 ScrollView中的内容相当于一个没有大小的View,所以里面的内容无法仅仅定义左右上下的边距来定义大小,还需要定义里面内容的宽高

首先在画面中拖入一个ScrollView,然后将TableView拖入ScrollView中,为了显示方便,将ScrollView的背景色设置为绿色

然后通过AutoLayout定义ScrollView的大小,将其上下左右边距设置为0

然后为其中的TableView设置上下左右边距,设置为10

然后AutoLayout会报错,就是因为无法仅仅通过边距来确定TableView的大小所以报错

为了解决这个问题,可以直接定义TableView的宽高,也可以设置TableView的宽高等于父容器,目的都是确定ScrollView其中内容的宽高 这里直接将TableView的宽高设置为父容器大小,右击按住TableView,拖动到ScrollView上,选择Equal Widths

然后相同的操作确定高度,可以看到AutoLayout已经不报错了

由于设置了边距10,所以将宽度和高度分别减去20

最后布局预览如下

在不同分辨率下AutoLayout运行正常