AutoLayout 之 UIScrollView

方法

1、将UIScrollView添加到UIView控件中,设置UIScrollView针对父视图UIViewconstraintsLeading/trailling/top/bottom = 0)或者根据自己需要设置相应数值。


2、在UIScrollView中添加UIView控件,起名ContentView。

UIScrollView是靠子视图来实现autolayout的高度和宽度的计算。设置ContentView的针对父视图UIScrollView constraints 

Leading/trailling/top= 0

bottom >= 1 

  equal height / equal width (ContentView的高度和宽度 UIScrollView相等)

设置equal height的优先级 priority小于 刚才设置的bottom的优先级(该bottom的是ContentView针对UIScrollViewconstraints,这里设置priority=999.


分析:

为什么 bottom =1 而不是 bottom = 0

 如果为0,并且ContentView中的内容高度不超过屏幕的高度时,uiscrollview不能弹动。

要实现ContentView 的高度自适应为uiscrollviewcontentSize的高度,需要ContentView中的子视图有明确的topbottom,用来让autolayout计算出ContentView的实际高度.


为什么要设置equal height 的优先级? 

 因为 scrollview.height = uiview.height

ContentView.height = scrollview.height + 1

 所以 ContentView.height != scrollView.height  也就是不能实现equal height这个constraints。会报错。只要调整一下优先级就可以解决这个问题,出现冲突,优先适应ContentView的高度

ContentView中如果使用UILabel,要给uilabel明确的height constraint,这样auto layout才能计算出高度。


例子

http://download.csdn.net/detail/bravegogo/9609124


参考:

http://blog.csdn.net/kmyhy/article/details/39929117

http://my.oschina.net/ioslighter/blog/390385

http://www.kittenyang.com/autolayoutforscrollview/

http://dadage456.blog.163.com/blog/static/30310744201491141752716


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值