关于Core Animation我们应该知道什么
Core Animation 是iOS 和OS X平台上进行图形渲染和动画的基础设施,设置简单的参数 Core Animation就能做出相应的动画效果,Core Animation 本身不是绘图系统,而是通过在硬件上合成和操作应用的内容,将大部分的图形渲染和动画操作交给图形硬件处理。
动画是什么?
简单来说就是,一个动画对象基于时间变化的过程,比如一个物体从一种状态变成另一种状态,这种状态的变化可能包括大小、角度、形状、颜色等,都可以看作是一次动画的过程,这个过程涉及到两个方面:1.动画的执行对象-CALayer,具体的动画过程-Animation。
在一个App上,我们看到的视图、界面都是UIView和UIView的子类,但是我们之所以能够看到这些内容,是因为每个视图有一个CALayer图层,我们对于View的操作,像frame,color,image等其实都是直接操作在Layer上,Layer只负责界面的展示,不具备与交互和响应事件的能力,View可以作为Layer的delegate去响应这些交互,我们可以将Layer看成一个数据模型,包含了Layer 的各种属性,这些属性包括:颜色,大小,位置等,而Animation则包含了动画的时间,变化的速度,变化关键状态等,Animation直接操作于Layer,进行渲染和动画,Layer预留了接口,为自己添加Animation。
CALayer的渲染架构
CALayer和UIView一样也有层级树状结构,叫做图层树,我们从视图获取的或者自己创建的用于显示的图层树叫做模型树(la yer.modelLayer),模型树还有两个复制图层,叫做呈现树(layer. presentationLayer)和渲染树,当我们修改Layer的属性,修改的是模型树的属性值,从旧值变成新值,而呈现树的属性值是和我们看到的动画过程一致的,渲染树则是对呈现树的数据进行渲染,是真正的动画过程,并且是不公开的。
网友评论