核心动画类:CAAnimation、CAPropertyAnimation、CABasicAnimation、CAKeyframeAnimation、CATransition、CAAnimationGroup

 
父类:CAAnimation(抽象类)
CAAnimation直接子类:CAPropertyAnimation(抽象类),CATransition(转场动画),CAAnimationGroup(动画数组)
CAPropertyAnimation直接子类:CABasicAnimation(基本动画)、CAKeyframeAnimation(关键帧动画)
=========================================================

类介绍:

@interface CAAnimation : NSObject <NSCoding, NSCopying, CAMediaTiming, CAAction>//动画根抽象类

//速度控制函数(决定动画的运行速率)

@property(strong) CAMediaTimingFunction *timingFunction;

//动画的代理

@property(strong) id delegate;

//默认为YES,代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态

@property(getter=isRemovedOnCompletion) BOOL removedOnCompletion;

//类方法,创建动画实例

+ (instancetype)animation;

//根据指定的键获取对应的属性值

+ (id)defaultValueForKey:(NSString *)key;

//根据指定的键获取的对应的属性是否归档

- (BOOL)shouldArchiveValueForKey:(NSString *)key;

@end

=========================================================

@interface NSObject (CAAnimationDelegate)//NSObject类的一个动画协议分类

//开始动画时触发的方法

- (void)animationDidStart:(CAAnimation *)anim;

//结束动画时触发的方法

- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;

@end

=========================================================

@interface CAPropertyAnimation : CAAnimation //抽象类,创建对象必须使用它的子类

//根据指定的键路径创建一个动画实例

+ (instancetype)animationWithKeyPath:(NSString *)path;

//属性的键路径

@property(copy) NSString *keyPath;

//是否添加

@property(getter=isAdditive) BOOL additive;

//是否累计

@property(getter=isCumulative) BOOL cumulative;

//动画形变函数(形变的transform系数)

@property(strong) CAValueFunction *valueFunction;

@end

=========================================================

注意:核心动画中有一个协议需要注意的:CAMediaTiming   //动画协议

下面是协议对应的一些属性(方法)

//动画开始时间,用来设置动画延迟执行时间

@property CFTimeInterval beginTime;

//动画持续时间
@property CFTimeInterval duration;

//动画执行速率
@property float speed;

//时间执行偏移量
@property CFTimeInterval timeOffset;

//动画重复次数
@property float repeatCount;

//动画重复时间
@property CFTimeInterval repeatDuration;

//如果设置为YES,代表动画每一次重复执行的效果会跟上一次相反

@property BOOL autoreverses;

//动画填充模式(要想fillMode有效,需要设置removedOnCompletion = NO)
@property(copy) NSString *fillMode;

=========================================================

@interface CABasicAnimation : CAPropertyAnimation//基本动画

//动画某属性开始值、最终值、经过值(值可能是动画的位置position、形变属性transform等)

@property(strong) id fromValue, toValue, byValue;

@end

=========================================================

@interface CAKeyframeAnimation : CAPropertyAnimation //关键帧动画

//存放动画帧的数组

@property(copy) NSArray *values;

//动画运动路径

@property CGPathRef path;

//存放关键时刻的数组,可以为对应的关键帧指定对应的时间点,其取值范围为0到1.0

@property(copy) NSArray *keyTimes;

//速度控制函数(决定动画的运行速率)

@property(copy) NSArray *timingFunctions;

//计算模式,对于每一帧之间的连接模式

@property(copy) NSString *calculationMode;

//存放关键帧时间执行的动画的一些值(position、transform等)

@property(copy) NSArray *tensionValues, *continuityValues, *biasValues;

//旋转模式

@property(copy) NSString *rotationMode;

@end

=========================================================

@interface CATransition : CAAnimation  //转场动画

//动画过渡类型

@property(copy) NSString *type;

//动画过渡方向

@property(copy) NSString *subtype;

//动画起点和动画终点(在整体动画的百分比)

@property float startProgress, endProgress;

//动画过滤

@property(strong) id filter;

@end

 ========================================================

@interface CAAnimationGroup : CAAnimation //动画数组(存放许多可以同时持续执行的动画)

//存放多张动画的数组

@property(copy) NSArray *animations;

@end

iOS:核心动画具体的类和协议的介绍的更多相关文章

  1. IOS 动画专题 --iOS核心动画

    iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看 ...

  2. iOS 核心动画 Core Animation浅谈

    代码地址如下:http://www.demodashi.com/demo/11603.html 前记 关于实现一个iOS动画,如果简单的,我们可以直接调用UIView的代码块来实现,虽然使用UIVie ...

  3. iOS核心动画详解(一)

    前言 这篇文章主要是针对核心动画(Core Animation)的讲解,不涉及UIView的动画.因为内容较多,这篇文章会分为几个章节来进行介绍.本文主要是介绍核心动画的几个类之间的关系和CAAnim ...

  4. iOS核心动画高级技巧之图层变换和专用图层(二)

    iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...

  5. iOS核心动画高级技巧之CALayer(一)

    iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...

  6. iOS核心动画(专用图层篇)

    之前的文章我们了解了Core Animation中图层的一些基础知识.没有看过的传送门在此: iOS核心动画基础篇 那么在了解了这些基础知识之后,接下来进入专用图层的了解 苹果为了方便和性能,封装了几 ...

  7. iOS核心动画学习整理

    最近利用业余时间终于把iOS核心动画高级技巧(https://zsisme.gitbooks.io/ios-/content/chapter1/the-layer-tree.html)看完,对应其中一 ...

  8. IOS 核心动画之CAKeyframeAnimation - iBaby

    - IOS 核心动画之CAKeyframeAnimation - 简单介绍 是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation ...

  9. iOS核心动画高级技巧之核心动画(三)

    iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...

随机推荐

  1. M1分数分配

    进过第一轮迭代我们依据工作量及质量决定分配分数方案: 王皓南 24.5分 黄宇冰 24分 申开亮 23.5分 许晋 21分 王宇杰 17分 吴润凡 16分 巴丹益昔 14分

  2. 封装getByClass

    方法一:(普通版),获取单一的class: function getByClass(oParent, sClass) { var aResult = []; var aEle = oParent.ge ...

  3. 这个好像、也许、或许、大概、应该、Maybe真的可以算是传说中的Spring.Net了吧

                                                            这个好像.也许.或许.大概.应该.Maybe真的可以算是传说中的Spring.Net了吧 ...

  4. android开发,关于android app实现静默安装自己(系统签名)

    产品需求,木有办法.android系统是跟厂商定制的,保证系统开机就运行我们的app,并且实现自己静默安装,完全自动化,无需人工操作. 网上有很多办法, 1.要么要通过android 源码拿到密钥文件 ...

  5. Spring MVC 环境搭建(二)

    在Spring MVC 环境搭建(一)中我们知道 spring 的配置是通过 urlmapping 映射到控制器,然后通过实现Controller接口的handlerequest方法转向页面. 但这存 ...

  6. Oracle 相关概念详解

    一.前言 笔者对于Oracle数据库的理解,很长时间停留在“镜花水月”的状态,你说不懂吧,又会用,一较真起来吧,对一些基本概念又说不出一个道道来~如果想要在编码的路上走得更远,这个必定也是绕不过的坎, ...

  7. 基于ArcEngine的空间数据通用建库软件介绍

    最近花了点时间把之前的空间数据入库功能进行了完善,在这里做一个简单的介绍,也希望大家给提点意见和建议,我的目标是做一个好用.易用.通用.稳定的入库程序. 1.软件特点: 基于模板(方案)的数据更新   ...

  8. HDU 5293 Tree chain problem 树形dp+dfs序+树状数组+LCA

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5293 题意: 给你一些链,每条链都有自己的价值,求不相交不重合的链能够组成的最大价值. 题解: 树形 ...

  9. 802.11 wireless 六

    802.11 wireless 6Bluetooth蓝牙1.无线个人网络(WPAN)的无线电系统2.普通链路范围 10米/0dBm(100米/20dBm)3.传输频率在2.402 GHZ和2.480 ...

  10. 【BZOJ】【1087】【SCOI2005】互不侵犯King

    状压DP 我写的太水了……64ms才过,估计还有更好的做法,希望各位神犇不吝赐教>_<. 嗯这题很明显每一行都可以用一个2进制数表示放置方式的,(1表示放,0表示不放).然后预处理一下所有 ...