博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS动画编程-Layer动画[ 5 ] Animation Groups组合动画
阅读量:7058 次
发布时间:2019-06-28

本文共 1052 字,大约阅读时间需要 3 分钟。

之前的几篇中我们学习了如何对Layer加入多个单独的动画,但是如何让他们同步并保持次序呢

对时间的掌握是比较复杂的,CAAnimationGroup应运而生

CAAnimationGroup

CAAnimationGroup继承自CAAnimation,拥有CAAnimation的全部属性,比如beginTime\duration\toValue\removedOnCompletion\delegate等等

CAAnimationGroup有一个animations数组,用于添加动画,下面我们用示例来展示一下

下面我们来创建一个CAAnimationGroup

let groupAnimation = CAAnimationGroup() groupAnimation.beginTime = CACurrentMediaTime() + 0.5groupAnimation.duration = 0.5groupAnimation.fillMode = kCAFillModeBackwards

下面我们创建一个scale动画

let scaleDown = CABasicAnimation(keyPath: "transform.scale")scaleDown.fromValue = 3.5scaleDown.toValue = 1.0

你也许会注意到我们并没有为动画指定fillMode\duration等等属性

没错,这些属性会由CAAnimationGroup提供
我们创建另外二个动画

let rotate = CABasicAnimation(keyPath: "transform.rotation")rotate.fromValue = CGFloat(M_PI_4)rotate.toValue = 0.0let fade = CABasicAnimation(keyPath: "opacity")fade.fromValue = 0.0fade.toValue = 1.0

现在我们将这些动画加入AnimationGroup,只需简单的将这几个动画加入animations数组中即可,最后将groupAnimation直接添加到Layer上

groupAnimation.animations = [scaleDown, rotate, fade]loginButton.layer.addAnimation(groupAnimation, forKey: nil)

转载地址:http://omgol.baihongyu.com/

你可能感兴趣的文章
2.7. SNMP
查看>>
Android全局代理软件ProxyDroid和TransProxy源码分享
查看>>
C# WinForm开发系列 - ADO.NET
查看>>
SQL Server误区30日谈-Day23-有关锁升级的误区
查看>>
人人都是 DBA(XV)锁信息收集脚本汇编
查看>>
将不确定变为确定~MVC3的ValidateInput属性失灵了
查看>>
[LeetCode] Paint House II 粉刷房子之二
查看>>
[LeetCode] Number Complement 补数
查看>>
设计一个有getMin功能的栈
查看>>
[LintCode] Maximum Gap 求最大间距
查看>>
RegeX的早期版本
查看>>
Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合...
查看>>
零元学Expression Blend 4 - Chapter 23 Deep Zoom Composer与Deep Zoom功能
查看>>
C#~异步编程再续~async异步方法与同步方法的并行
查看>>
Windows下的字体美化
查看>>
13.9. Health Status
查看>>
Unable to execute dex: Multiple dex files define Lcom/kenai/jbosh/AbstractAttr
查看>>
微信小程序明星开发者博卡君专访
查看>>
什么是 Help Desk?
查看>>
【MySQL】Tokudb安装测试初探
查看>>