UIView动画实质上是对Core Animation的封装,提供简洁的动画接口。
对于简单的应用场景,使用UIView动画非常方便简洁。
一、基础动画
|
|
Stay hungry Stay foolish
如果一个layer是被一个view创建的,那么这个view通常会自动被赋值给这个layer的delegate属性(也就算说这个view就是这个layer的代理)。你不应该改变这种关系。对于你自己创建的layer,你可以赋值一个代理对象用来动态提供layer的内容和执行其他的任务。
如果一个layer已经关联了一个view对象。那么layer的delegate属性必须设置为这个拥有这个layer的view本身。
UIView是iOS页面控件的基类,因为UIView直接继承自UIResponder,所以可以响应用户事件,在iOS中创建的每一个UIView都有一个属性layer(CALayer),layer继承自己NSObject,不能响应用户事件,但layer提供了UIView内容的绘制功能,也就是说UIView侧重于对显示内容的管理,CALayer侧重于对内容的绘制。UIView和CALayer相互依赖,UIView依赖于CALayer提供的内容,CALayer依赖UIView提供的容器来显示绘制的内容,UIView可以理解为是CALayer的高级封装。
CoreAnimation是iOS与OS X平台上负责图形渲染与动画的基础设施。Core Animation可以动画视图和其他的可视元素,为你完成了动画所需的大部分绘帧工作。只需配置少量的动画参数(如开始点位置和结束点的位置)就可实现绚丽的Core Animation动画效果。
Core Animation将大部分实际的绘图任务交给了图形硬件来处理,图形硬件会加速图形渲染的速度。这种自动化的图形加速技术让动画拥有更高的帧率并且更加的平滑,而且不会加重CPU的负担而影响程序的运行速度。
Core Animation自身并不是一个绘图系统。它只是一个负责在硬件上合成和操纵应用内容的基础构件。Core Animation的核心是图层对象,图层对象用于管理和操控你的应用内容。图层将捕获的内容放到一副位图中,图形硬件能够非常容易的操控你的位图。