ScrollView代码设置约束

2 篇文章 0 订阅
1 篇文章 0 订阅

ScrollView代码设置约束

       Swift写的 app,直接从页面说起,上方是一个轮播图,下方是一个collectionView,很显然,如果使用TableView后期涉及到数据传递的问题就头大了,所以我最后决定用scrollView,经过垂死挣扎,终于研究出了一点小结果,总结了一些简单的纯代码约束规则分享给大家.

里面用到的第三方约束框架是SnapKit



一、将scrollView设置为控制器的根视图

首先我没有采用直接给View赋值的方式( self.view = scrollView() )(PS:如果有大神能通过这种方式将scrollView设置为根视图,咱么私聊,哈哈). 

将scrollView以子视图的方式添加到View上,需要对scrollView的四个边界进行约束,约束到View上,一定一定要四个边界约束


对scrollView的四个边界进行约束
二、给scrollView添加子控件,重点来了。。。

(1)首先我们得知道,用代码给scrollView添加约束时,是不能设置固定contentSize(滚动范围)的,contentSize是根据子控件的大小自动计算的;

(2)子控件必须设置大小,也就是(width,height),一定要一定要写死!!!!!这样不无道理,自动计算contentSize,你必须要让人家计算机知道所有子控件加在一起的width,height.

(3)我们的需求是让页面上下滚动,一定要让计算机检测到这种结构


top和bottom约束必须有




 ^_^          一定不要忘记上面正确的规则




至于一些规则,我们来看:

(1)我懂你,你在想只需约束它左右边界就可以知道子控件的宽了,同时高也同理都约束好了,完美,子控件大小都知道了,例如这样:


对于scrollView,还是错误的示范

但是你运行出来是这个样子,看到滚动条没,他已经知道你子控件的加起来的长度,并且计算出了contentSize,但是就是不显示内容


可滚动,不显示控件
所以为了显示内容,你必须直接了当的约束width,height,就是这样,尽量避免冲突的将子控件的宽和高写死!!!


(2)别指望约束边界自动计算,在这里两边约束是有自己的目的的. 例如:回看我们的正确版本,位于最下面的子控件的约束,(make.bottom),它存在的目的是使计算机知道这种结构,从而计算出contentSize


上下滚动要求
如果设置了固定的高就不去设置底部约束,如果这样会显示内容但不会滚动

正确版本代码中并没有同时设置左右边界约束,因为我们并不希望页面会左右滚动,而希望页面上下滚动,因此,如果我们希望页面所有方向都可以滚动就需要毫不吝啬的把约束全部加上并直接设置宽高,例如这种结构



上下左右滚动要求
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值