一 介绍  

  一组非常强大的动画处理API

  直接作用在CALAyer上,并非UIView(UIView动画)

  CoreAnimation是所有动画的父类,但是不能直接使用,应该使用其子类

  

  属性:

    duration:持续时间

    repeatCount:重复次数

    repeatDuration:重复时间

    timingFunction:运行节奏

    keyPath:指定CALayer的某个属性为keyPath,并对CALayer的这个属性值进行修改,达到动画效果

    fillMode:决定当前对象在非active时间段的行为,比如动画开始之前以及结束之后

    beginTime:延迟执行时间 CACurrentMediaTime() + 延迟时间

    removedOnCompletion:动画执行完毕后是否从图层移除

二 子类介绍

  1. CAMediaTiming: protocol

  2. CAProperyAnimation:不能直接使用,要想创建动画对象,应该使用其子类:CABasicAnimation(基础动画),CAKeyframeAnimation(帧动画)

    1. CABasicAnimation:基础动画

      只能从一个数值(fromValue)变到另一个(toValue)

       使用: 

        一 实例化

          使用方法animationWithKeyPath:对 CABasicAnimation进行实例化,并指定Layer的属性作为关键路径进行注册。

        二 设定动画的属性

           

      三 设置是否让动画在结束时恢复到初始状态

          只需设置removedOnCompletionfillMode两个属性就可以了。

    //防止动画结束后回到初始状态
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeBackwards;

      四 添加动画

         使用方法addAnimation将动画实例添加到控件的layer上

      完整代码:

//实例化,绑定layer的属性作为关键路径进行注册
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"opacity"];
//所改变属性的起始值和结束值
animation.fromValue = [NSNumber numberWithFloat:1.0f];
animation.toValue = [NSNumber numberWithFloat:0.0f];
//动画结束时是否执行逆动画
animation.autoreverses = YES;
animation.duration = 0.2;
animation.repeatCount = 4;
//设置动画的速度变化 渐进
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
//防止动画结束后回到初始状态
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeBackwards; animation.delegate = self;
//添加动画
[sender.layer addAnimation:animation forKey:nil];

    2.CAKeyFrameAnimation:关键帧动画

      使用一个NSArray保存这些数值

        values:即NSArray对象,里边元素被称为“关键帧(keyframe)”,动画对象会在指定的时间duration内,一次显示values内的每一个关键帧

        keyTimes:对应关键帧的对应时间点,取值从0-1

        path:让层随路径移动,只对CALayer的anchorPoint和position起作用,若设置path,则values会被忽略

  3.CATransition:转场动画

    实现了将控制器的视图推入屏幕的动画效果

      type:动画类型

      subtype:过渡方向

      startProgress:起点

      endProgress:终点

  4.CAAnimationGroup:组动画

    组中所有动画对象可以同时并发运行

      animations:保存一组动画对象的NSArray

参考链接:http://www.cnblogs.com/wendingding/p/3801036.html

  

iOS CoreAnimation 核心动画的更多相关文章

  1. iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程

    iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...

  2. IOS QuartzCore核心动画框架

    IOS QuartzCore核心动画框架 核心动画框架 使用核心动画需要引入的框架:#import CALayer: CoreAnimation CALayer就是UIView上的图层,很多的CALa ...

  3. iOS学习——核心动画

    iOS学习——核心动画 1.什么是核心动画 Core Animation(核心动画)是一组功能强大.效果华丽的动画API,无论在iOS系统或者在你开发的App中,都有大量应用.核心动画所在的位置如下图 ...

  4. iOS学习——核心动画之Layer基础

    iOS学习——核心动画之Layer基础 1.CALayer是什么? CALayer我们又称它叫做层.在每个UIView内部都有一个layer这样一个属性,UIView之所以能够显示,就是因为它里面有这 ...

  5. iOS:核心动画的详解介绍:CAAnimation(抽象类)及其子类

    核心动画的详解介绍:CAAnimation(抽象类)   1.核心动画基本概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍! 使用它 ...

  6. iOS之核心动画(Core Animation)

      Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能. Core ...

  7. iOS基础 - 核心动画

    一.核心动画 l 核心动画基本概念 l 基本动画 l 关键帧动画 l 动画组 l 转场动画 l Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事 ...

  8. CoreAnimation 核心动画 / CABasicAnimation/ CAKeyframeAnimation

    - (void)createBaseAnimation{ //基础动画 CABasicAnimation *animation = [CABasicAnimation animation]; anim ...

  9. iOS:核心动画之基本动画CABasicAnimation

    基本动画,是CAPropertyAnimation的子类 属性说明: fromValue:keyPath相应属性的初始值 toValue:keyPath相应属性的结束值 动画过程说明: 随着动画的进行 ...

随机推荐

  1. redirect()重新定向·

  2. 解释序列号关键字的形象说法[Serializable]

    举个栗子,你在qq中发送一段文字加图片混合的信息给某人的时候,qq不会提供多个方法分别接收文字和图片,而是将这段内容信息赋值给一个对象,然后序列化这个对象为 byte[],然后对这个数组编码,加密,压 ...

  3. Two Sum Leetcode Java

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  4. 【转】JVM介绍

    1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...

  5. jQuery视差滚动插件,(附原理分析,调用方法)

    演示地址:http://www.jq22.com/jquery-info1799 jquery插件,使用验证过可用. 分析源代码后总结原理:设置background样式为fixed,判断浏览器滚动距离 ...

  6. 修改hosts文件,修改后不生效怎么办

    当你在打开浏览器的情况下修改hosts文件时,关闭浏览器时系统才会释放掉hosts文件占用的那部分内存,我们再次打开浏览器访问就发现已经生效了. ps:ipconfig /flushdns     # ...

  7. RobotFrameWork(四)变量运算与Evaluate

    一.特殊变量运算: 执行结果: 二.Evaluate使用 函数释义:Evaluate是执行Python表达式,并返回执行结果 示例1: 执行结果: 示例2: 执行结果:

  8. 【转】Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码

    Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱. 然而在使用的过程中 ...

  9. Sql Server 2008服务启动失败,错误17058

    SQL Server (SQLEXPRESS) 服务因 17058 (0x42A2) 服务性错误而停止. 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/even ...

  10. Java 自动装箱、拆箱机制及部分源码分析

    Integer i = 10; //装箱,反编译后发现调用Integer.valueOf(int i) int t = i; //拆箱,反编译后发现调用i.intValue() public clas ...