【iOS提高】CoreAnimation概述

一、简介
CoreAnimation 顾名思义核心动画。在2007年被引入,iOS中强大的动画处理API,目的是为Apple应用开发出可观绚丽的动画效果。
CoreAnimation可以在iOS OX X上应用。其动画执行过程都是在后台执行,不会阻塞主线程。直接作用于CALayer,而非UIView。
二、使用
1.iOS6之前需要引入QuartzCore.framework 引入头文件<QuartzCore/QuartzCore.h>
2.初始化CAAnimation对象 设置一些动画相关属性
通过调用CALayer的addAnimation:forKey方法增加CAAnimation对象到CALayer上 
4.调用CALayer的removeAnimationForKey方法可以停止CALayer中的动画。
三、CAAnimation
CAAnimation继承结构
【iOS提高】CoreAnimation概述_第1张图片
CAMediaTiming是一个协议
1.CAAnimation常用属性
CAAnimation是所有动画类的父类 但是不能直接使用 应该使用子类
常见属性
1.duration  持续时间
2.repeatCount 重复次数
3.timeingFunction 控制动画运行的节奏

timingFunction可选的值有:
  • kCAMediaTimingFunctionLinear(线性):匀速,给你一个相对静态的感觉
  • kCAMediaTimingFunctionEaseIn(渐进):动画缓慢进入,然后加速离开
  • kCAMediaTimingFunctionEaseOut(渐出):动画全速进入,然后减速的到达目的地
  • kCAMediaTimingFunctionEaseInEaseOut(渐进渐出):动画缓慢的进入,中间加速,然后减速的到达目的地。这个是默认的动画行为。
4> delegate:动画代理,用来监听动画的执行过程
@interface NSObject (CAAnimationDelegate) 2 // 动画开始执行的时候触发这个方法
3 - (void)animationDidStart:(CAAnimation *)anim; 4 
5 // 动画执行完毕的时候触发这个方法
6 - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag; 7 @end
CAAnimation CAPropertyAnimation是抽象类 所以需要使用子类。
所以能用子类如
CABasicAnimation 基本动画
CAKeyframeAnimation  帧动画
CATransition  转场
CAAnimationGroup  动画组
CAPropertyAnimation
CAPropertyAnimation是CAAnimation的子类,但是不能直接使用,要想创建动画对象,应该使用它的两个子类:CABasicAnimation和CAKeyframeAnimation

有NSString类型的keyPath 可以对CALayer的某个属性名设置 以达到动画效果。

你可能感兴趣的:(【iOS提高】CoreAnimation概述)