Core Animation核心动画

Core Animation核心动画_第1张图片
框架图.png
  • OpenGL ES是个C语言写的非常底层的图形处理框架
    • 是个移动设备上绘制2D和3D计算机图形的标准开源库,广泛地被用在游戏的图形绘制上,负责直接驱动GPU,效率非常高,缺点是使用起来异常复杂。
  • Core Animation是对OpenGL ES的Objective-C封装
    • 具有与OpenGL ES几乎等价的高性能,却隐藏了OpenGL ES的复杂性。
Core Animation核心动画_第2张图片
Snip20151029_7.png

一、Core Animation 核心动画

  • Core Animation可以用在Mac OS X和iOS平台。
  • Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。
  • 还有一点需要注意:Core Animation是直接作用在CALayer上的,并非UIView。

二、Core Animation的使用步骤

  • 注意:如果不是xcode5之后的版本,使用它需要先添加QuartzCore.framework和引入对应的框架

1、使用步骤

  • 1.首先得有CALayer
  • 2.初始化一个CAAnimation对象,并设置一些动画相关属性
  • 3.通过调用CALayer的addAnimation:forKey:方法,添加CAAnimation对象到CALayer中,这样就能开始执行动画了
  • 4.通过调用CALayer的removeAnimationForKey:方法可以停止CALayer中的动画

三、CAAnimation

  • 要想执行动画,就必须初始化一个CAAnimation对象。下面介绍CAAnimation
Core Animation核心动画_第3张图片
结构图.png
  • 核心动画中所有类都遵守CAMediaTiming

  • 注意:CAAnaimation是个抽象类,不具备动画效果,CAPropertyAnimation也是个抽象类,本身不具备动画效果,只有它们的子类才有

可用动画类 : CAAnimationGroup 、CATransition、CABasicAnimation和CAKeyframeAnimation

  • CAAnimationGroup:动画组,可以同时进行缩放,旋转等动画

  • CATransition:转场动画,界面之间跳转都可以用转场动画

  • CABasicAnimation:基本动画,做一些简单效果

  • CAKeyframeAnimation:帧动画,做一些连续的流畅的动画

四、CAAnimation的常用属性

 duration:动画的持续时间

 repeatCount:动画的重复次数

 timingFunction:控制动画运行的节奏
  ---> timingFunction可选的值有:
     --- kCAMediaTimingFunctionLinear(线性):匀速,给你一个相对静态的感觉
     --- kCAMediaTimingFunctionEaseIn(渐进):动画缓慢进入,然后加速离开
     --- kCAMediaTimingFunctionEaseOut(渐出):动画全速进入,然后减速的到达目的地
     --- kCAMediaTimingFunctionEaseInEaseOut(渐进渐出):动画缓慢的进入,中间加速,然后减速的到达目的地。这个是默认的动画行为。

delegate:动画代理(CAAnimationDelegate),用来监听动画的执行过程

    @interface NSObject (CAAnimationDelegate)
    // 动画开始执行的时候触发这个方法
    - (void)animationDidStart:(CAAnimation *)anim;

    // 动画执行完毕的时候触发这个方法
    - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;
    @end

4> delegate:动画代理,用来监听动画的执行过程

你可能感兴趣的:(Core Animation核心动画)