ScrollView代码布局(SnapKit)带来的困扰
来源:互联网 发布:手机日记本软件 编辑:程序博客网 时间:2024/05/01 02:21
最近在用代码去布局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
或者是直接在下面评论也是可以的。记得多点赞哦,转发加评论
- ScrollView代码布局(SnapKit)带来的困扰
- redhat带来的困扰
- 宽带安装带来的困扰
- http_build_query函数带来的困扰
- http_build_query函数带来的困扰
- Hibernate的SaveOrUpdate方法带来的困扰
- FLex中的this关键字带来的困扰
- 解决Myeclipse ctrl+h带来的困扰
- UTF-8 BOM带来的困扰
- OpenCV版本问题带来的困扰
- 正则表达式反斜杠带来的困扰
- listview scrollview 对scrollto 使用的困扰
- VFL、SnapKit、masonry 三种自动布局的使用
- 微软的HTC不执行带来的困扰
- 不同国家的小数点给开发者带来的困扰
- 最快速度修复NTLDR给你带来的困扰(xp)
- 噪声带来的困扰以及解决方法---软件滤波
- hive和impala操作parquet文件timestamp带来的困扰
- JAVA设计模式之单例模式[转]
- isset()和empty()的区别
- Linux入门:线程同步与互斥(一)——互斥量
- ios ipad里面调用系统相册图片不完整解决方法
- JAVA OOP第七章 集合框架
- ScrollView代码布局(SnapKit)带来的困扰
- ubuntu 安装caffe精简教程
- Git小结
- C语言fgetc()函数的返回值
- 懂商业的技术合伙人(7):怎样快速开发一个APP(2)
- layer中使用layer.open中content里面的元素追加事件,加不上
- 树状数组区间修改+查询
- WinPCap捕获FTP用户名密码
- 关于android 6.0以上系统的拍照问题