ios的核心动画

CoreAnimation 是一组非常强大的动画处理 API ,使用它能做出非常炫丽的动画效果, 而且往往是事半功倍!
使用它 需要先添加 QuartzCore.framework 和引入对应的框架 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 继承结构

ios的核心动画_第1张图片

是所有动画对 象的父类,负责控制动画的持续时间和速度,是个抽象类, 不能直接使用 ,应该使用它具体的子类
属性说明: ( 红色代表来自 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 :动画终点 ( 在整体动画的百分比 )
ios的核心动画_第2张图片

你可能感兴趣的:(iOS)