•
CoreAnimation
是一组非常强大的动画处理
API
,使用它能做出非常炫丽的动画效果,
而且往往是事半功倍!
•
使用它
需要先添加
QuartzCore.framework
和引入对应的框架
<QuartzCore/
QuartzCore.h
>
1.初始化一个动画对象(CAAnimation)并设置一些动画相关属性
2.
CALayer
中很多属性都可以通过
CAAnimation
实现动画效果
,包括:
opacity
、
position
、
transform
、
bounds
、
contents
等
(
可以在
API
文档中搜索:
CALayer
Animatable
Properties
)
3.
添加动画对象到层
(
CALayer
)
中
,
开始执行动画
4.
通过调用
CALayer
的
addAnimation:forKey
增加动画到层
(
CALayer
)
中
,这样就能触发动画了。通过调用
removeAnimationForKey
可以停止层
中的动画
5.
Core
Animation
的动画执行过程都是
在后台操作的
,不会阻塞主线
程
CAAnimation
继承结构
•
是所有动画对
象的父类,负责控制动画的持续时间和速度,是个抽象类,
不能直接使用
,应该使用它具体的子类
•
属性说明:
(
红色代表来自
CAMediaTiming
协议的属性
)
–
duration
:动画的持续时间
–
repeatCount
:重复次数,无限循环可以设置
HUGE_VALF
或者
MAXFLOAT
–
repeatDuration
:重复时间
–
removedOnCompletion
:默认为
YES
,代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。
如果想让图层保持显示动画执行后的状态,那就设置为
NO
,不过还要设置
fillMode
为
kCAFillModeForwards
–
fillMode
:决定当前对象在非
active
时间
段的行为。比如动画开始之前或者动画结束之
后
–
beginTime
:可以用来设置动画延迟执行时间,若想延迟
2s
,就设置为
CACurrentMediaTime
()+2
,
CACurrentMediaTime
()
为图层的当前时间
–
timingFunction
:速度控制函数,控制动画运行的节奏
–
delegate
:动画
代理
•
CATransition
是
CAAnimation
的子类,用于做转场动画,能够
为层提供移出屏幕和移入屏幕的动画效果
。
iOS
比
MacOS X
的转场动画效果少一点
•
UINavigationController
就是通过
CATransition
实现了将控制器的视图推入屏幕的动画效果
•
动画属性
:
–
type
:动画过渡类型
–
subtype
:动画过渡方向
–
startProgress
:动画起点
(
在整体动画的百分比
)
–
endProgress
:动画终点
(
在整体动画的百分比
)