使用CoreAnimation一般分为三个部分:1.创建执行动画的CALayer 2.创建动画 3.CALayer 添加Animation

CoreAnimation是以锚点为基础.

CoreAnimation的继承关系:

CAAnimation
属性 描述
timingFunction 时间函数

kCAMediaTimingFunctionLinear线性

kCAMediaTimingFunctionEaseIn淡入

kCAMediaTimingFunctionEaseOut淡出

kCAMediaTimingFunctionEaseInEaseOut淡入淡出

kCAMediaTimingFunctionDefault默认

通过控制点创建一个时间函数:                              - (id)functionWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y;
- (id)initWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y; 
delegate 代理
removedOnCompletion 是否在动画完成将其移除 
方法 描述

+(instancetype)animation

创建CAAnimation对象

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

根据属性key,返回相应的属性值

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

返回指定的属性值是否可以归档
协议 描述
 -(void)animationDidStart:(CAAnimation *)anim animation开始执行
 -(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag; animation结束或者被移除是回调,只用在动画结束的情况下,flag才是YES
CAMediaTiming 
fillMode

决定了当前对象非active时间段的行为,比如动画之前,动画之后(RemoveOnCompletion必须设成NO)
KCAFillModeRemoved:这个是默认值,动画开始前,动画结束后,动画对layer都没有影响,动画结束后,layer会恢复到之前状态
KCAFillModeForwards:动画结束后,layer会一直保持动画最后的状态
KCAFillModeBackwards:在动画开始前,只要将动画加入一个layer,layer便立即进入动画的初始化状态并等待动画开始
KCAFFillModeBoth:KCAFillModeForwards和KCAFillModeBackwards的结合,动画开始之前,Layer处于动画初始状态,动画结束后Layer保持动画最后状态 
beginTime   起始时间
duration  时长 
speed 速度 
timeOffset 时间偏移 
repeatCount  重复次数 
repeatDuration 重复时长 
autoReverses 

是否在动画结束后回到开始值

CATransion(系统动画)
属性  描述
type

动画类型:

kCATransitionFade

kCATransitionMoveIn

kCATransitionPush

kCATransitionReveal

subtype

动画的方向:

kCATransitionFromRight

kCATransitionFromLeft

kCATransitionFromTop

kCATransitionFromBottom

startProgress 动画起始位置,默认为0,范围0~1
endProgress 动画结束位置,默认为0,范围1~0
filter 过度对象,设置后type和subtype将被忽略
   

CAPropertyAnimation(属性动画)
属性 描述
keyPath

描述animation的类型:

additive  
cumulative  
valueFunction  
方法   描述

+(instancetype)animationWithKeyPath:(NSString *)path

创建动画
   
CABasicAnimation(基础动画)
属性 描述
fromValue 开始值
toValue 结束值
byValue 相对值
FromValue、ToValue、ByValue不能同时多余两个为空 
 CAKeyframeAnimation(关键帧动画) 
 属性 描述 

values

里面的元素称为“关键帧”。动画对象会在指定的时间里,显示完values数组里的每一帧 

path

可以设置一个CGPathRef/CGMutablePathRef,让层跟着路径移动。path只对CALayer的anchorPoint和position起作用,如果设置了Path那么Value将被忽略

keyTimes

 为对应的关键帧指定对应的时间点,取值范围是0~1,keyTimes中的每一个时间值都对应Values中的每一帧,当keyTimes没有设置的时候,各个关键帧的时间平分,比如传{0,0.1,0.6,0.7,1.0},首尾必须是0,1,tAB= 0.1-0,tCB = 0.6-0.1,tDC = 0.7-0.1 

timingFunctions

时间函数数组

calculationMode

计算模式,其主要针对的是每一帧的内容为一个坐标点的情况,也就是对anchorPoint和position进行动画。决定了物体在每个子路径下是跳着走还是匀速走

kCAAnimationLinear:线性,默认,关键帧为座标点的时候,关键帧之间直接直线项链进行插值计算

kCAAnimationDiscrete:离散,无中间过程,不进行插

kCAAnimationPaced:平均,使动画均匀进行

kCAAnimationCubic:对关键帧为座标点的关键帧进行圆滑的曲线相连后进行插值计算

kCAAnimationCubicPaced:在KCAAnimationCubic的基础上使得动画运行变动均匀

tensionValues

 

continuityValues

biasValues

 

rotationMode

kCAAnimationRotateAuto

kCAAnimationRotateAutoReverse

   
 CASpringAnimation 
属性  描述
mass 质量,影响图层运动时的弹簧惯性,质量越大,弹簧拉伸和压缩的幅度越大 
stiffness 刚度系数(劲度系数/弹性系数),刚度系数越大,形变产生的力就越大,运动越快
damping 阻尼系数,阻止弹簧伸缩的系数,阻尼系数越大,停止越快
initialVelocity 初始速率,动画视图的初始速度大小 
速率为正数时,速度方向与运动方向一致,速率为负数时,速度方向与运动方向相反 
 settlingDuration 结算时间 返回弹簧动画到停止时的估算时间,根据当前的动画参数估算 
通常弹簧动画的时间使用结算时间比较准确
   
 CAAnimationGroup 
 属性  描述
 animations  动画数组
   

CoreAnimation方法汇总的更多相关文章

  1. 你真的会玩SQL吗?实用函数方法汇总

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  2. Java实现时间动态显示方法汇总

    这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...

  3. C#读写文件的方法汇总_C#教程_脚本之家

    C#读写文件的方法汇总_C#教程_脚本之家 http://www.jb51.net/article/34936.htm

  4. UITextView实现placeHolder方法汇总

    UITextField中有一个placeholder属性,可以设置UITextField的占位文字,起到提示用户的作用.可是UITextView就没那么幸运了,apple没有给UITextView提供 ...

  5. 将编码从GB2312转成UTF-8的方法汇总(从前台、程序、数据库)

    这篇文章主要介绍了将编码从GB2312转成UTF-8的方法汇总(从前台.程序.数据库),需要的朋友可以参考下 一个网站如果需要国际化,就需要将编码从GB2312转成UTF-8,其中有很多的问题需要注意 ...

  6. 本地获取System权限CMD方法汇总(转)

    本地获取System权限CMD方法汇总(转) 稍微整理了下,大概有三种方法可以本地获取system权限的cmd,但前提都是当前用户具备administrator权限. 下面列举的三种方法各有千秋,看你 ...

  7. Javascript对象属性与方法汇总

    Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...

  8. .net(C#)操作文件的几种方法汇总

    .net(C#)操作文件的几种方法汇总 System.IO命名空间下类的用法:在System.IO名称空间中包含了用于文件输入输出的主要类.File:实用类,提供许多静态方法,用于移动.复制和删除文件 ...

  9. jquery常用函数与方法汇总

    1.delay(duration,[queueName]) 设置一个延时来推迟执行队列中之后的项目. jQuery1.4新增.用于将队列中的函数延时执行.他既可以推迟动画队列的执行,也可以用于自定义队 ...

随机推荐

  1. Windows下ELK环境搭建(单机多节点集群部署)

    1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...

  2. js页面用定时任务通过AJAX获取后台数据,但是从这个页面跳转到其他页面后,定时任务仍然在定时请求后台

    setInterval(function(){//ajax 请求后台数据},1000);这个是A页面的定时器然后我在A页面通过其他请求跳转到其他页面之后后台发现A页面的定时器的那个请求仍然在执行为什么 ...

  3. html5学习笔记5--API Range对象(二)

    Range对象之cloneRange和cloneContents 代码效果如下 首次点击“选择内容“按钮提示如下 接着会显示 最后显示 以下为整个代码 <!DOCTYPE html> &l ...

  4. SQL查询中in、exists、not in、not exists的用法与区别

    1.in和exists in是把外表和内表作hash(字典集合)连接,而exists是对外表作循环,每次循环再对内表进行查询.一直以来认为exists比in效率高的说法是不准确的,如果查询的两个表大小 ...

  5. Oracle中的数据分页

    --数据分页脚本 --创建包含数据分页代码元素声明的包头结构create or replace package data_controlis type type_cursor_data is ref ...

  6. 求助,eclipse总是卡在building workspace-CSDN论坛

    1).解决方法 方法1.修改eclipse启动文件 eclipse.ini 中添加启动参数参数: -vmargs -Xmx512m 方法2.关闭自动构建工作区: project -> build ...

  7. 泛函编程(37)-泛函Stream IO:通用的IO处理过程-Free Process

    在上两篇讨论中我们介绍了IO Process:Process[I,O],它的工作原理.函数组合等.很容易想象,一个完整的IO程序是由 数据源+处理过程+数据终点: Source->Process ...

  8. SqlServer双机热备技术实践笔记

    SqlServer双机热备,大体上可以通过发布订阅,日志传送,数据库镜像来实现. 1,发布--订阅 是最早最简单的方案,但需要注意发布的时候,发布进程必须对快照目录有访问权限,这个问题可以从“查看快照 ...

  9. 《Continuous Delivery》 Notes 1: The problem of delivering software

    What is "Deployment pipeline"? A deployment pipeline is an automated implementation of you ...

  10. Training - Problem and Change Management

    Problem Management Problem management seeks to identify the underlying causes of incidents in an IT ...