iOS CoreAnimation 核心动画
一 介绍
一组非常强大的动画处理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的属性作为关键路径进行注册。
二 设定动画的属性
三 设置是否让动画在结束时恢复到初始状态
只需设置removedOnCompletion
、fillMode
两个属性就可以了。
//防止动画结束后回到初始状态
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 核心动画的更多相关文章
- iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程
iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...
- IOS QuartzCore核心动画框架
IOS QuartzCore核心动画框架 核心动画框架 使用核心动画需要引入的框架:#import CALayer: CoreAnimation CALayer就是UIView上的图层,很多的CALa ...
- iOS学习——核心动画
iOS学习——核心动画 1.什么是核心动画 Core Animation(核心动画)是一组功能强大.效果华丽的动画API,无论在iOS系统或者在你开发的App中,都有大量应用.核心动画所在的位置如下图 ...
- iOS学习——核心动画之Layer基础
iOS学习——核心动画之Layer基础 1.CALayer是什么? CALayer我们又称它叫做层.在每个UIView内部都有一个layer这样一个属性,UIView之所以能够显示,就是因为它里面有这 ...
- iOS:核心动画的详解介绍:CAAnimation(抽象类)及其子类
核心动画的详解介绍:CAAnimation(抽象类) 1.核心动画基本概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍! 使用它 ...
- iOS之核心动画(Core Animation)
Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能. Core ...
- iOS基础 - 核心动画
一.核心动画 l 核心动画基本概念 l 基本动画 l 关键帧动画 l 动画组 l 转场动画 l Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事 ...
- CoreAnimation 核心动画 / CABasicAnimation/ CAKeyframeAnimation
- (void)createBaseAnimation{ //基础动画 CABasicAnimation *animation = [CABasicAnimation animation]; anim ...
- iOS:核心动画之基本动画CABasicAnimation
基本动画,是CAPropertyAnimation的子类 属性说明: fromValue:keyPath相应属性的初始值 toValue:keyPath相应属性的结束值 动画过程说明: 随着动画的进行 ...
随机推荐
- 第3月第8天 RefCounted PlistBuddy
1.RefCounted引用计数 class Frame : public RefCounted<Frame> { // ... } http://www.cnblogs.com/dsky ...
- HTML 5 代码
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- (备忘)Rect和RectF的区别
1.Rect的变量使用int类型,而RectF使用float类型. 2.一些方法区别 <1>.Rect类 equals(Object obj) (for some reason it as ...
- sublime text install packages报错
汉化版的sublime text安装软件包的时候报错如下: There are no packages available for install 打开控制台,ctrl+~,然后看到如下错误: Pac ...
- 2016ACM/ICPC亚洲区沈阳站-重现赛赛题
今天做的沈阳站重现赛,自己还是太水,只做出两道签到题,另外两道看懂题意了,但是也没能做出来. 1. Thickest Burger Time Limit: 2000/1000 MS (Java/Oth ...
- MapKit/CoreLocation框架 总结
MapKit/CoreLocation框架 /*英译 core:核心 track:踪迹 current:当前 statellite:卫星 hybird:混合 region:范围 annotation ...
- 基于requests实现极客学院课程爬虫
背景 本文主要是为了完成极客学院课程<Python 单线程爬虫>中讲师布置的实战作业. 开发环境 操作系统:windows 10 Python :Python 2.7 IDE:PyChar ...
- python处理地理数据-geopandas和pyshp
这边博客并不是有关geopandas的教程和pyshp的教程! 使用python来处理地理数据有很多相关的包,最近研究需要处理一些地理数据,然而arcgis的arcpy总是不能令人满意.所以这里说说p ...
- Java数组技巧攻略
Java数组技巧攻略 0. 声明一个数组(Declare an array) String[] aArray = new String[5]; String[] bArray = {" ...
- 各种解析漏洞获取Webshell
各种解析漏洞拿shell 一.IIS 6.0解析漏洞 IIS 6.0解析利用方法有两种1.目录解析/xx.asp/xx.jpg2.文件解析wooyun.asp;.jpg第一种,在网站下建立文件夹的名 ...