Xib 约束 UIScrollerView

1、在使用xib定制界面时,我们经常会用到AutoLayout自动布局,或者不用AutoLayout,自己在xib属性的地方进行约束

2、xib中,ScrollView的自动约束并不像我们平常约束其他view一样,由于ScrollView的滚动范围是由有属性ContentSize决定的,所以在xib中使用AutoLayout约束的时候会相对复杂一下。
3、在xib中拖动一个scrollerView到xib中,scrollerView直接在View下面,界面结构如下:
Xib 约束 UIScrollerView_第1张图片
4、对srollerView进行约束,并更新位置
Xib 约束 UIScrollerView_第2张图片
5、添加约束完成之后,会发现一切正常,并没有报错,接下来我们往srollerView中添加一个View,会发现立马报错,

Xib 约束 UIScrollerView_第3张图片

点击小红点,会发现ContentSize报错,

Xib 约束 UIScrollerView_第4张图片

我们不用管他,返回去就可以了,然后选中View,添加约束,

Xib 约束 UIScrollerView_第5张图片

6、给view添加约束之后,会发现还是报错,
Xib 约束 UIScrollerView_第6张图片

这是需要给view再添加一个垂直约束(ScrollView需要垂直滚动,如果需要水平滚动,则需要水平约束,并设置view的宽约束),
Xib 约束 UIScrollerView_第7张图片

添加垂直约束相当于添加X约束,添加成功之后,会报Y没有约束的错误,
Xib 约束 UIScrollerView_第8张图片

然后我们再选中View,添加height约束,这里约束的是600,
Xib 约束 UIScrollerView_第9张图片

这是会发现,没有报错了,说明可以正常使用了

7、如果想要在控制器中动态的设置ScrollView的ContentSize,可以将view的高度拉线设置成属性,然后在控制器合适的计算地方设置ScrollView的垂直滚动范围,

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *scrollerViewContentWith; // 属性设置
self.scrollerViewContentWith.constant = 1200; // 设置ScrollView的垂直滚动范围

8、如果想要往ScrollView上添加需要跟随ScrollView滚动的控件(比如label),只需要将label添加到view(上面高度约束为600的那个view)上,成为view的subView就可以了,简单来说就是忽略掉ScrollView,把需要的控件放到view上,按照正常的约束来约束控件就可以了。

你可能感兴趣的:(scrollview,布局,界面,xib约束)