ScrollView代码布局(SnapKit)带来的困扰

最近在用代码去布局ScrollView时候,出现一些问题,记录下来。

先来看需求:(这里将说的简单下)放两个view,在scrollView上,让其上下滑动,左右不滑动。

因为是记录问题,就把需求简化了,这样下面的会更容易理解和讲解。好了,进入今天的正题。

首要前提:

1.使用代码布局scrollView时,是不能手动设置contentSize,他的contentSize是会自己根据子控件来自动计算

2.设置子控件时候,一定要直接了当的设置子控件的大小(width  height),只有这样,scrollview才会知道自己的contentSize是多大

3.用到SnapKit第三方

4.效果图:


一、scrollView放在控制器的view上面

这里是给scrollView以子视图的方式添加到控制器的view上面,同时是设置和底部view的四个边界一样

   scrollView = UIScrollView()
   scrollView!.backgroundColor = UIColor.red
   view.addSubview(scrollView!)
   scrollView?.snp.remakeConstraints({ (make) in
       make.edges.equalTo(self.view)
   })
        

二、重点来了,两个view的位置,以此来自动确定contentSize


这里笔者要重点说一下,首先viewA的红色框内的设置,是要直接给大小的。在viewB中红色部分也是一样,同样估计有的同学也看到有个黄色框内的代码了,对的,这句代码就是告诉scrollView,让其知道自己的contentSize的大小。这里笔者是设置bottom,因为是根据上面需求来的,因为要设置的目的是上下滚动,所以这里笔者设置的是bottom,如果有的同学是让其左右滚动,那就设置right即可。上面说的都是正确使用代码布局scrollView姿势。

这里还是在苹果6上面还是不能滚动的,原因很简单,就是 (30 +300 + 40 + 200) < 667,让其滚动也是可以,只需要满足之前 大于667,比如把viewB的高度200改为500,你就会神奇的发现,可能上下滚动了。

下面笔者上传一张错误的书写方式供大家参考:(图片来自网络)


1、为了避免出现你不想看到的画面,请记住,您必须直接的给出子控件的高和宽。

2、不要妄想约束边界自动帮你计算,同时这里面的左右边界是有他自己的目的

好了,今天的分享就到这里,如果还有什么不明白的地方,可通过下面的方式联系笔者,笔者会在第一时间来回答各位的问题:

qq   3145419760

微信号   WSMl062925

邮箱   wusong_gongzuo@163.com

或者是直接在下面评论也是可以的。记得多点赞哦,转发加评论

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值