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
原因就在于:我们通过代码时设置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
相关文章推荐
- UI测试
- UIAlertViewController的使用方法
- Arduino - 连接RS232串口设备(通过RS232转TTL转接口)
- EasyUI序列化提交学习总结
- UIView的alpha、hidden和opaque属性之间的关系和区别
- UIViewController全部API的学习。
- UML建模之时序图(Sequence Diagram)
- IOS UIWindow 、UIView
- How to set the title of UIButton as left alignment?
- angular-ui-router 多视图views
- iOS-UIButton-设置button标题和图片位置
- HDU 5057 Argestes and Sequence(平方分割)
- UIAlertController
- UI第二节 视图交互与事件机制
- UIButton的常用设置及响应事件的添加
- iOS UI学习 第一节
- UITextField的常用设置
- 22个值得收藏的Android开源代码-UI篇
- OC-UI-007.imageNamed、imageWithContentsOfFile、imageWithData区别
- iOS UINavigationController的使用