您的位置:首页 > 产品设计 > UI/UE

UIScrollView原理解析

2016-12-11 01:00 267 查看
了解更多IOS底层原理知识,关注腾讯课堂八点钟学院IOS高级开发 

 IOS学习交流群 431449751;

在我们app中,UIScrollView几乎贯穿我们整个项目业务,为什么这么说,我们来看UITableview,UICollectionView,UITextView等都是继承UIScrollView的,而这些控件使用频率之高,想大家都知道,所以知道UIScrollView的底层实现还是有必要的。扎实的基础就像楼盘的地基,地基越稳就可以越高

1、UIScrollView滑动技能,是不是感觉有点神奇,居然能滑动,马上揭开他滑动的底层实现。



首先我们来查找UIScrollView能滑动的来源,他继承UIView,所以不是来自父类,那么我们来看系统文件



发现有一个panGestureRecognize滑动手势,我们来做一把测试,把这个手势移除



结果scrollView失去了滑动的效果,我们找到了答案,滑动原来是panGestureRecognize来实现的。

2、那么滑动过程中子视图一起移动的效果是怎么做到的呢,其实很简单

首先我们必须知道UIView的frame和bounds的作用

frame是相对父视图坐标系来决定自己的位置和大小,在开发过程中会经常用到,不多解释

但bounds是相对于自身坐标系的位置和尺寸的,什么意思呢,我们去修改视图bounds的origin试试,我们发现视图本身没有发生变化,但是它的子视图的位置却发生了变化,因为bounds的origin值是基于自身的坐标系,当自身坐标系的位置被改变了,里面的子视图肯定得变化,bounds和panGestureRecognize就是实现UIScrollView滑动效果的关键技术点。
3、我们了解原理,那么我们自己来实现一个UIScrollView,撸上代码,一切尽在代码中







看完是不是发现UIScrollView的滑动原理很简单!是的,就这么简单
了解更多IOS底层原理知识请关注腾讯课堂八点钟学院IOS高级开发
https://ke.qq.com/course/171725
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息