CoreAnimation (CALayer 动画)
CoreAnimation基本介绍:
- CoreAnimation动画位于iOS框架的Media层
- CoreAnimation动画实现需要添加QuartzCore.Framework
- CoreAnimation基本上是LayerAnimation


CoreAnimation分类:

CoreAnimation作用:

CoreAnimation

CALayer基本介绍




CALayer的常用属性

CABasicAnimation

CAKeyframeAnimation



CAAnimationGroup

CASpringAnimation

XIB分别设置几个button然后关联方法,代码展示:
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView; @end @implementation ViewController
#pragma mark - CABasicAnimation
- (IBAction)CABasicAnimation:(id)sender {
// 第一步:创建动画对象
CABasicAnimation *basicAnimation = [CABasicAnimation animation];
// 第二步:告诉layer层需要执行什么样的动画(后边设置的内容为CALayer的相关属性)
basicAnimation.keyPath = @"position"; // position 改变位置的
// 第三步:告诉layer从哪里来,到哪里去
basicAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(, )];
basicAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(, )];
// 注意点: 如果要实现图片不会到原来点,需要以下两句代码
basicAnimation.removedOnCompletion = NO;
// 设置保存动画状态的内容
basicAnimation.fillMode = kCAFillModeForwards; // 第四步:设置动画持续的时长
basicAnimation.duration = 6.0f;
// 第五步:将要执行的动画添加到calayer上
[self.imageView.layer addAnimation:basicAnimation forKey:@"basic"];
// *************翻转效果
CABasicAnimation *basic = [CABasicAnimation animation];
basic.keyPath = @"transform";
// 设置翻转的地方
basic.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2, , , )];
basic.duration = 0.2f;
[self.imageView.layer addAnimation:basic forKey:@"aaaa"];
// 根据key去移除动画
// [self.imageView.layer removeAnimationForKey:@"basic"];
} #pragma mark - CAKeyframeAnimation
- (IBAction)CAKeyAnimation:(id)sender {
// 第一步:创建对象
CAKeyframeAnimation *keyAnimation = [CAKeyframeAnimation animation];
// 第二步:设置动画轨迹
keyAnimation.keyPath = @"transform.rotation";
// 第三步:设置翻转的角度 (弧度计算公式:度数/180*M_PI)
keyAnimation.values = @[@(- / 180.0 * M_PI), @( / 180.0 * M_PI), @(- / 180.0 * M_PI)];
// 第四步:设置时长
keyAnimation.duration = 15.0f;
// 第五步:添加动画到layer层
[self.view.layer addAnimation:keyAnimation forKey:@"bbbb"];
} #pragma mark - CAAnimationGroup
- (IBAction)CAAnimationGroup:(id)sender {
// 平移动画
CABasicAnimation *basic1 = [CABasicAnimation animation];
basic1.keyPath = @"transform.translation.y"; // 按照y轴平移
basic1.toValue = @();
// 缩小动画
CABasicAnimation *basic2 = [CABasicAnimation animation];
basic2.keyPath = @"transform.scale"; // 缩小
basic2.toValue = @(0.3);
// 旋转动画
CABasicAnimation *basic3 = [CABasicAnimation animation];
basic3.keyPath = @"transform.rotation"; // 旋转
basic3.toValue = @(M_PI); // 需要创建管理各个动画的动画组
CAAnimationGroup *group = [CAAnimationGroup animation];
group.animations = @[basic1,basic2,basic3];
// group 会自动分配时间
group.duration = 5.0f; [self.imageView.layer addAnimation:group forKey:@"ccccc"];
} #pragma mark - CASpring
- (IBAction)CASpring:(id)sender {
// 设置对象
CASpringAnimation *spring = [CASpringAnimation animation];
spring.keyPath = @"transform.scale";
spring.fromValue = @;
spring.toValue = @0.2;
spring.duration = 3.0f; [self.imageView.layer addAnimation:spring forKey:@"ddddd"];
} @end
总结:

CoreAnimation (CALayer 动画)的更多相关文章
- iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程
		iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ... 
- 使用Instruments中的CoreAnimation分析动画
		使用Instruments中的CoreAnimation分析动画 1. 打开Instruments中的CoreAnimation 2. 运行前的准备工作 要注意勾选以下选项,便于调试 3. 运行与调试 ... 
- 实现UIView的无限旋转动画(非CALayer动画)
		实现UIView的无限旋转动画(非CALayer动画) 效果: 素材: 源码: // // ViewController.m // Animation // // Created by YouXian ... 
- CALayer动画的暂停,恢复,以及结束时候的回调
		CALayer动画的暂停,恢复,以及结束时候的回调 源码如下: // // ViewController.m // AnimationLineView // // Created by YouXian ... 
- CoreAnimation动画(CALayer动画)
		#pragma mark - CABasicAnimation动画 - (IBAction)basicAnimation:(UIButton *)sender { // 1.创建动画对象 CABasi ... 
- iOS CoreAnimation 核心动画
		一 介绍 一组非常强大的动画处理API 直接作用在CALAyer上,并非UIView(UIView动画) CoreAnimation是所有动画的父类,但是不能直接使用,应该使用其子类 属性: dura ... 
- iOS CALayer动画中使用的3个tree
		在网上经常看到关于layer的tree的描述,不太理解,今天找到了官方文档,原文在Core Animation Programming Guide 中. Layer Trees Reflect Dif ... 
- CoreAnimation 核心动画二  锚点
		锚点: anchorPoint 以锚点为中心 执行动画 (与 渔夫固定船的点时一致的) anchorPoint 默认是 0.5,0.5 (注意: 锚点 是一个比例) anchorPoint ... 
- CoreAnimation —— CALayer
		概述 如上篇博文讲述,UIView中封装了很多系统方法,可以满足我们的大部分需求.但是,其也有很多限制.那些方法产生的动画基本单元为UIView,是非常重量级的对象,而且也不支持三维布局,大部分是对视 ... 
随机推荐
- ios 设备用jquery live绑定 click 事件不管用
			问题描述:用js拼接的html追加到页面,然后用 live 绑定click事件不起作用 解决办法:1.直接在标签写onclick事件 2.给需要绑定的标签添加css样式{cursor:pointe ... 
- Linq to Sqlite连接
			本人还是挺喜欢用Sqlite,鼓捣半天终于连上了,赶紧记录一下 1.当然还是新建一个项目,还是winform, 2.Vs2012添加NoGet,点击工具--扩展和更新,搜索NoGet,安装. 3.管理 ... 
- pthread_wrap.h
			#ifndef _PTHREAD_WRAP_H#define _PTHREAD_WRAP_H#include <pthread.h> class hm_pthread_mutex{publ ... 
- eclipse手动添加源码
			在开发过程中,有的时候需要我们自已手动去添加一些源码文件,但是由于我们可能在eclipse中安装了jad反编译插件,我们再用“Ctrl + 鼠标左键”的话,会打开已经反编译好的class文件,而不是带 ... 
- hadoop 主节点存储告警
			之前只他调整过dfs 的存储目录到最大配额的目录,其它没有处理(就是在默认的/ 目录下,而这个目录的存储配额只有50G) 运行一周的时间不到,集群开始告警,查看是目录/ 的存储占用超过了60% 再查看 ... 
- 利用python进行数据分析之数据规整化
			数据分析和建模大部分时间都用在数据准备上,数据的准备过程包括:加载,清理,转换与重塑. 合并数据集 pandas对象中的数据可以通过一些内置方法来进行合并: pandas.merge可根据一个或多个键 ... 
- cocos2dx ResolutionPolicy
			FrameSize 参数,在游戏运行时,我们可以通过 CCEGLView::sharedOpenGLView()->getFrameSize();如果在手机上运行,那么不同分辨率将会得到不同的值 ... 
- Node.cluster
			nodejs是一个单进程单线程的引擎,只能利用到单个cpu进行计算,面对当今服务器性能的提高,cpu的利用率显然对node应有的性能大打折扣,面对这个问题,cluster应运而生. cluster介绍 ... 
- Floodlight之 FloodlightContextStore 数据结构
			FloodlightContextStore 代表的是一种缓存模型(利用的是ConcurrentHashMap).里面存储的是上下文相关的对象,可以依据对应的key得到详细的 Object. ... 
- Lamd表达式
			1. 普通绑定: public void button1_Click(object sender, EventArgs e) { MessageBox.Show("ok"); } ... 
