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相应属性的结束值 动画过程说明: 随着动画的进行 ...
随机推荐
- JavaScript创建对象及对象继承
面向对象的语言有一个标志,那就是他们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是在ECMAScript中没有类的概念,因此它的对象也与基于类的对象有所不同.实际上,JavaSc ...
- Cannot find `aapt.exe`. Please install the Android SDK Build-tools package
Google has updated their SDK tools ("Android SDK Tools" Rev. 23) in a way that also requir ...
- [转]MySQL 最基本的SQL语法/语句
MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下. DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete ...
- java序列化
什么是java序列化,如何实现java序列化? 我们有时候将一个java对象变成字节流的形式传出去或者从一个字节流中恢复成一个java对象,例如,要将java对象存储到硬盘或者传送给网络上的其他计算机 ...
- Bootstrap Fileupload 文件上传
1.在jsp中引入css与js文件, <link href="${ctx}/plugins/fileup/css/fileinput.css" media="all ...
- .NET Lambda
Lambda概述 lambda 表达式是一个可用于创建委托或表达式树类型的匿名函数. 通过使用 lambda 表达式,可以可作为参数或返回编写本地函数,该函数调用的值. Lambda 表达式 ...
- AngularJS HTML DOM
AngularJS 为 HTML DOM 元素的属性提供了绑定应用数据的指令. ng-disabled 指令: ng-disabled 指令直接绑定应用程序数据到 HTML 的 disabled 属性 ...
- Macbook Pro 使用小记
本周到手Macbook Pro,很激动.刚刚使用了几天,简单记下自己的感受. Macbook Pro的硬件配置和做工真没得说,非常完美. 触控板很强大.很好用,鼠标可以基本不用了,但要稍微学习一下 ...
- 速度最快的Json序列框架Jil,入门动手实录
好吧,我又先要贴出跑分图了,出处 Jil是一个面向Json的序列化框架,在Nuget上可以下载到 支持数据类型 值得一提的是,Guid指定带破折号格式(44B2673B-B5CA-477B-A8EA- ...
- 详解ABP框架的多租户
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:ABP框架对多租户场景提供了很好的支持,内建了多租户的处理机制,今天我们来深入解析一下 ...
