一 介绍  

  一组非常强大的动画处理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. APP注释代码

    <meta name="viewport" content="width=device-width,height=device-height,inital-scal ...

  2. MySQL SQL优化

    一.优化数据库的一般步骤: (A) 通过 show status 命令了解各种SQL的执行频率. (B) 定位执行效率较低的SQL语句,方法两种: 事后查询定位:慢查询日志:--log-slow-qu ...

  3. phpcms中的RBAC权限系统

    PHPCMS中的RBAC权限系统主要用到了4张数据表:管理员表,角色表,菜单表,菜单权限表.先来看看数据库的数据表结构: admin 管理员表 ID 字段 类型 Null 默认 索引 额外 注释 1 ...

  4. Python自动化之django URL

    URL url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail) 会把(?P\d+)和(?P\d+)传到后台 需 ...

  5. androi手机解锁引导程序

    1.重启手机进入fastboot模式  一般关机状态下按手机音量减+开机键,成功后会显示fastboot字提示. 2.查看设备信息 fastboot devices 说明:fastboot是一个工具软 ...

  6. bootstrap使用心得及css模块化的初步尝试

    第一次用bootstrap到实战项目,是一个企业门户站,可以说是强行拿bootstrap上来练手,感觉并不适合. 我是用的less编译bootstrap文件,直接改less变量.然后把不可重用的部分, ...

  7. 【krpano】二维码自动生成插件(源码+介绍+预览)

    简介 在krpano生成的全景支持HTML5在手机中展示,而在手机中打开全景网址时不方便,需要输入网址. 最近研究了如何让krpano全景根据自己当前的网址,自动生成二维码,并在电脑浏览时,可以展示出 ...

  8. cf595d

    题意:给出一个轮子,上面有一个随着它转动的传感器在圆周上,给出一个指定距离m,和轮子向前行进的速度v以及轮子的半径r.问让传感器通过该距离最少需要多少时间. 分析:首先我们列出传感器行进距离与时间的轮 ...

  9. upload&&download

    package am.demo;  import java.io.File;  import java.io.IOException;  import java.util.Iterator;  imp ...

  10. SQL表新增触发(触发器)

    ALTER TRIGGER [InsertStoreJITOnloadQuantity] ON [dbo].[Sourceing] After INSERT AS --登記計劃數量(新增時YN=0) ...