iOS:核心动画具体的类和协议的介绍
核心动画类:CAAnimation、CAPropertyAnimation、CABasicAnimation、CAKeyframeAnimation、CATransition、CAAnimationGroup
@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:核心动画具体的类和协议的介绍的更多相关文章
- IOS 动画专题 --iOS核心动画
iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看 ...
- iOS 核心动画 Core Animation浅谈
代码地址如下:http://www.demodashi.com/demo/11603.html 前记 关于实现一个iOS动画,如果简单的,我们可以直接调用UIView的代码块来实现,虽然使用UIVie ...
- iOS核心动画详解(一)
前言 这篇文章主要是针对核心动画(Core Animation)的讲解,不涉及UIView的动画.因为内容较多,这篇文章会分为几个章节来进行介绍.本文主要是介绍核心动画的几个类之间的关系和CAAnim ...
- iOS核心动画高级技巧之图层变换和专用图层(二)
iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...
- iOS核心动画高级技巧之CALayer(一)
iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...
- iOS核心动画(专用图层篇)
之前的文章我们了解了Core Animation中图层的一些基础知识.没有看过的传送门在此: iOS核心动画基础篇 那么在了解了这些基础知识之后,接下来进入专用图层的了解 苹果为了方便和性能,封装了几 ...
- iOS核心动画学习整理
最近利用业余时间终于把iOS核心动画高级技巧(https://zsisme.gitbooks.io/ios-/content/chapter1/the-layer-tree.html)看完,对应其中一 ...
- IOS 核心动画之CAKeyframeAnimation - iBaby
- IOS 核心动画之CAKeyframeAnimation - 简单介绍 是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation ...
- iOS核心动画高级技巧之核心动画(三)
iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...
随机推荐
- 基于PBOC电子钱包的消费过程详解
智能卡金融行业应用电子钱包的消费交易流程,开发人员可参考 首先终端和卡片有一个共同的密钥叫做消费密钥:PurchKey (针对每种特定的交易,比如,圈存,消费,都有特定的密钥与之对应) 假设Purch ...
- Java团队项目总结
Java团队项目总结 1.项目实现情况 项目概述: 我们团队项目准备实现一个有关于大富翁有的游戏程序. 大富翁游戏,以经营权为主要的游戏方式,通过购买经营权与架构经营的星级服务来获得最大的利益,当其他 ...
- 角色控制器(CharacterController)
移动: 1.SimpleMove(Vector3: vector3&speed) 简单移动,可以根据vector3方向移动,物体不需要添加刚体即受重力影响,不需要添加碰撞器即可以产生碰撞,但无 ...
- 重读《Struts In Action》
Figure 1.1. The Java Servlet API exposes the HTTP client/server protocol to the Java platform. S ...
- 深入理解jQuery中live与bind方法的区别
本篇文章主要是对jQuery中live与bind方法的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 注意如果是通过jq添加的层和对象一定要用live(),用其他的都不起作用 ...
- IE 选择文字后 显示小箭头 加速按钮
IE - 工具 - Internet选项 - 高级 - 不选择<在选择是显示加速按钮>选项就可以了.
- 小试牛刀MVC简单网页
上次我们创建了第一个MVC的网站,没用下,这次就简单来运行下,首先大家要去理解下MVC模式到底什么关系.在这里我就不多说,直接创建一个网页,用来显示一些数据,数据库的话我就先简单用这样创建先,为了方便 ...
- [Bug]The maximum array length quota (16384) has been exceeded while reading XML data.
写在前面 在项目中,有客户反应无法正常加载组织结构树,弄了一个测试的程序,在日志中查看到如下信息: Error in deserializing body of reply message for o ...
- wordpress无法安装这个包。: PCLZIP_ERR_MISSING_FILE (-4) : Missing archive file 'C:\WINDOWS\TEMP/wordpress-4.tmp'
朋友的wp博客好久没管理了,让ytkah帮忙打理一下,进到后台发现版本还是3.9的,那是比较早以前的版本了,早该升级了. 在升级wordpress时出现以下错误: 无法安装这个包: PCLZIP_ER ...
- vs2010把项目资源打包成系统资源
把wav格式的音频做成系统资源,根据条件播放相应的音频 System.Media.SoundPlayer spOne = new System.Media.SoundPlayer(); ...