在开始之前呢,先了解一下UIView和CALayer大体的区别(重点列举了以下四点):
- UIView继承自 UIResponder,因此UIView 可以处理响应事件,而CALayer继承自NSObject,所以它只是负责内容的创建,绘制。
- UIView负责对内容的管理,而CALayer则是对内容的绘制
- UIView中有关位置的属性只有frame、bounds、center,而CALayer除了具备这些属性之外还有anchorPoint、position。
- 通过修改CALayer可以实现UIView无法实现的很多高级功能
什么是Core Animation?
Core Animation为iOS的核心动画,它提供了一组丰富的API可以用于实现各种高级酷炫的动画效果。Core Animation 书与QuartzCore.framework框架。
Core Animation的特点:
- 直接作用于CALayer图层上,并非UIView上。
- Core Animation的执行过程在后台执行,不阻塞主线程。
- 可以使用CALayer绝大多数属性制作高级动画效果。
Core Animation中常用类的继承关系图:
- CAMediaTiming 有很多动画公共的属性:比如常见的duration(动画执行周期)、speed(速度)、repeatCount(重复次数)等一些公共的属性
- CAAnimation 主要用于实现动画的委托代理方法,比如动画开始事件和动画结束都是通过CAAnimation类实现的
- CAPropertyAnimation 属性动画,分为基础动画CABasicAnimation和关键帧动画CAKeyframeAnimation。
- CAAnimationGroup 组合动画,使用这个类可以把其他常用动画组合在一起
- CATransition 转场动画,主要用于视图控制器或者多个View之间的视图切换场景
时间: 2024-10-07 04:17:56