您的位置:首页 > 产品设计 > UI/UE

Storyboard/Xib使用UIScrollView进行自动布局注意点

2015-12-22 16:24 489 查看
在普通的view上直接添加一些控件是不需要做任何处理,只需要添加四周的约束即可,但是在使用ScrollView时这样操作便会出现问题。

原因就在于:我们通过代码时设置ScrollView需要设置其ContentSize,而在Storyboard或Xib中并没有这一设置,那么问题就来了,需要通过什么才能设置其ContentSize呢? 答案就是约束。

下面示例:

a. 创建一个xib

b. 在View中添加一个scrollView,并设置其约束相对父view{0,0,0,0}[上,下,左,右]



c. 添加一个view,你可以设置你想要的尺寸如下



d. 这个时候就会出现错误,不过不用去管.原因就是无法确定contentSize



e. 添加约束以确定contentSize



f. 不过添加约束后发现还是会出现错误?



g. 缺少滚动方向设置(放后面,容易忘记)

需要先确定下,需要滚动的方向是哪一个;

如果水平和竖直方向都需要滚动的话,不用添加了,那错误怎样解决呢

发现了没,刚我们设置的是contentSize的竖直方向,还没有设置水平方向的呢,所以只需要再设置水平方向即可(在这里我们只要设置这个View的宽度就OK了)。

水平方向滚动

就要保证ContentSize的宽度得到确定,缺少什么就补什么了。【Vertical Center in Container】保证在滚动过程中竖直方向上的中心在容器内

竖直方向滚动

本例就从竖直方向着手了。设置如下:(容器内保持水平)



延伸:

在我们使用根据内容调整控件(如:UIImageView、UILabel)尺寸时往往不能确定尺寸的临时大小,这就需要进行相应调整了,那么在ScrollView中这样设置ContentSize就比较难保证尺寸了。

问题总有解决的方法:

只需要上下左右约束

如果内容是运行时决定的如UIImageView,若图片是从服务器下载的,那么我们就需要放一个空的UIImageView,不包含所显示的图片,不过这样会因未设置图片导致imageView尺寸无法确定,storyboard抛出错误,解决方案便是放一个临时的占位尺寸来告诉sotryboard。

方法:选中控件—> (右侧)show the size inspector -> Intrinsic Size : Placeholder 尺寸可以随意设



参考:

/article/1225835.html

/article/1225703.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: