xib正确创建可滑动的UIScrollView

我们在xib里面创建scrollview是不能直接设置contentSize的,这就导致用xib创建出得Scrollview不能滑动。正确的做法是:
1.创建ScrollView
2.创建ScrollView的子View(子view如有多个,需先创建一个容器view,然后将所有子view放入容器View,在将容器view放入ScrollView,这个容器view就相当于下面的imageView);下面为示例图


这里以imgeview为例;并进行约束
注意这里的高度Height的约束


因为是垂直滑动,所以需要点选imageview的  Horizontal  Center   in   Container ,反之水平滑动需点选 Vertical   Center   in   Container (对应的需创建宽度Width约束)
3.其实到了这里已经可以了,但是很多时候我们创建的Scrollview的contentSize并不是固定的,这就需要对Scrollview的子View的Frame进行动态的改变,做法如下:


我们可以看到刚刚对Scrollview的子View——imageView的高度Height的约束,将其拖入对应类的.h文件内,取名imageHeight;


然后就可以在   -( void )viewDidAppear:( BOOL )animated 对其经行动态的修改了





4.在Scrollview内需要添加多个子View(既需要容器View)还有稍微的不同,因为容器view内的多个View之间多是约束关系,所以我们不能很好的得到我们需要的高度值来动态修改 容器view的高度(宽度)约束。解决方法也很简单,就是把容器view内带有约束的最后(最下/最右)一个子view(lastView)拖入.h,然后计算lastView.frame.origin.y(x)+lastView.frame.size.height(width)即为我们需要的新的约束高度(宽度);


5.有时候我们需要去网络获取数据,然后很据网络返回的数据来加载子view,这样就会出现一个致命的问题,我在项目中的数据接口是用Block返回的,当block返回数据时,viewController已经加载出来了,所以尺寸一直有问题。考虑了一下有两种实现方法1.使用同步加载获取数据。2.在Block内更新布局约束。我的解决方法是:在  -( void )updateViewConstraints里修改NSLayoutConstraint 在数据返回Block里面调用[selfupdateViewConstraints];  不知道这样会不会有什么问题。希望大牛指教




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值