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

在普通的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就比较难保证尺寸了。
问题总有解决的方法:

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

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

这里写图片描述

参考:
http://www.cocoachina.com/ios/20141118/10242.html
http://www.cocoachina.com/ios/20150104/10810.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值