CoreAnimation-07-CAAnimationGroup
概述
- 简介
- CAAnimationGroup又称组动画或动画组
- 将多个动画放到动画组中,并赋值给layer的animations属性,动画组中所有动画就会并发执行
- 注意事项
- 动画组中的动画不会被压缩,超出动画时长的部分将会被剪掉
- 动画组中的动画的delegate与removedOnCompletion属性将会被忽略
- 由于忽略了removedOnCompletion属性,动画结束layer会恢复到动画前的状态
CAAnimationGroup唯一的属性
- animations(NSArray<CAAnimation *> *)
- 存放并发执行的所有动画
- 数组元素为CAAnimation的子类
示例
效果图

实现思路
- 创建动画组对象group
- 创建多个CABasicAnimation对象,分别作用与不通过的属性
- 将多个基本动画对象赋值给group的animations属性
- 将动画组添加到要执行动画的图层上
- 通过隐式动画改变图层的背景颜色
实现步骤
- 通过storyboard创建UIView控件,并拥有它,修改它的class属性为自定义的UIView的子类
@property (weak, nonatomic) IBOutlet UIView *redView;
- 创建动画组
//创建动画组对象
CAAnimationGroup *group = [CAAnimationGroup animation];
//设置动画组的执行时间
group.duration = 1.0; //创建基本动画对象,用来进行缩放
CABasicAnimation *scale = [CABasicAnimation animation];
scale.keyPath = @"transform.scale";
scale.fromValue = @1.0;
scale.toValue = @0.5; //创建基本动画对象,用来进行旋转
CABasicAnimation *rotation = [CABasicAnimation animation];
rotation.keyPath = @"transform.rotation";
rotation.toValue = @(arc4random_uniform(M_PI * 2)); //创建基本动画对象,用来修改位置
CABasicAnimation *position = [CABasicAnimation animation];
position.keyPath = @"position";
position.toValue = [NSValue valueWithCGPoint:CGPointMake(arc4random_uniform(200) + 20, arc4random_uniform(200) + 20)]; //将基本动画添加到动画组中
group.animations = @[scale, rotation, position];
- 将动画组添加到要执行动画的图层上
[self.redView.layer addAnimation:group forKey:nil];
- 通过隐式动画改变layer的背景色
self.redView.layer.backgroundColor = [self randomColor].CGColor;
- 实现返回随机颜色的方法
//返回随机颜色
- (UIColor *)randomColor
{
return [UIColor colorWithRed:arc4random_uniform(255) / 255.0 green:arc4random_uniform(255) / 255.0 blue:arc4random_uniform(255) / 255.0 alpha:1.0];
}
CoreAnimation-07-CAAnimationGroup的更多相关文章
- CoreAnimation confusion: CATransaction vs CATransition vs CAAnimationGroup?
http://stackoverflow.com/questions/14042755/coreanimation-confusion-catransaction-vs-catransition-vs ...
- iOS CoreAnimation详解(一) 有关Layer的动画
以前由于项目需要 也写了一些动画 ,但是知识不系统,很散.这段时间趁着项目完成的空袭,来跟着大神的脚步系统的总结一下iOS中Core Animation的知识点. 原博客地址:http://blog. ...
- iOS CoreAnimation 核心动画
一 介绍 一组非常强大的动画处理API 直接作用在CALAyer上,并非UIView(UIView动画) CoreAnimation是所有动画的父类,但是不能直接使用,应该使用其子类 属性: dura ...
- ios基础篇(二十五)—— Animation动画(UIView、CoreAnimation)
Animation主要分为两类: 1.UIView属性动画 2.CoreAnimation动画 一.UIView属性动画 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIVie ...
- iOS关于CoreAnimation动画知识总结
一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了: ...
- CoreAnimation方法汇总
使用CoreAnimation一般分为三个部分:1.创建执行动画的CALayer 2.创建动画 3.CALayer 添加Animation CoreAnimation是以锚点为基础. CoreAnim ...
- CoreAnimation笔记
核心动画继承结构 CoreAnimation Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Ani ...
- 第二十九篇、CoreAnimation的使用
使用的的三个步骤 1.初始化演员 2.设置好剧情 3.播放 主要类: CALayer // 绘图部分 CABaseAnimation // 基本动画(缩放,移动) CAKeyframeAnimatio ...
- CoreAnimation
CoreAnimation 1.CABasicAnimation // position CABasicAnimation *ba = [CABasicAnimation animationWithK ...
- CoreAnimation (CALayer 动画)
CoreAnimation基本介绍: CoreAnimation动画位于iOS框架的Media层 CoreAnimation动画实现需要添加QuartzCore.Framework CoreAnima ...
随机推荐
- 时尚前沿:15个创意的 3D 字体设计艺术作品欣赏
在这里,我们为大家呈现30个创意的3D版式设计,注意每个设计中字体,颜色,款式的使用,让您享受并得到他们的灵感. 版式设计是一个美丽的艺术形式.无论是粗体还是细体,用不同的字体或使用拟物化技术操纵文本 ...
- 浅析I/O模型及其设计模式
前言 I/O在软件开发中的重要性无需多言,无论是在操作系统.网络协议.DBMS这种底层支撑软件还是在移动APP,大型网站服务器等应用软件的开发中都是最核心最重要的部分.特别是现在软件服务使用量和数据量 ...
- 【转】SAPI中的IspeechRecoContext(接口)
IspeechRecoContext自动化接口定义一个识别上下文. 什么是一个识别上下文? 一个识别上下文就是应用程序和SAPI共同作用来实现语音识别的最主要方法.它就是用来允许应用程序来开始.停止识 ...
- HTML简明教程(一)
HTML简明教程(一) 内容主体来自:W3School 一.HTML 简介 二.HTML 基础 三.HTML 元素 四.HTML 属性 五.HTML 标题 六.HTML 段落 七.HTML 文本格式化 ...
- 本学期3个sprint的团队贡献分
第一次冲刺贡献分 组员 贡献分 103马嘉诚 28 143李新佳 22 145马文其 19 120韩智豪 16 147黄鸿浩 15 第二次冲刺贡献分 组员 贡献分 103马嘉诚 23 143李新佳 2 ...
- linq之where子句
在Linq中,where子句主要是来指定筛选元素的逻辑条件.linq查询中where子句不是必须的,可以不包括where子句,也可以包含多个where子句,where子句中可以包含一个或多个bool类 ...
- 循序渐进开发WinForm项目(2)--项目代码的分析
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- 解决android引用library project错误
在andriod项目中引用另一个library project时,报 The container 'Android Dependencies' references non existing libr ...
- How to manage the certificates in the PC
1.open Run command. 2.enter 'mmc' . 3.Click File, and Add or Remove Snap-in. 4.Select Certificates, ...
- Ubuntu配置任意版本的apt-get镜像
我们知道,迄今为止,Ubuntu已有多个发行版,如11.04.11.10,以至于现在最新的16.*.而我们平常通过apt-get来安装软件,如果OS版本不同,那么镜像源的配置就不同,否则就会出现找不到 ...