iOS动画编程-Layer动画[ 5 ] Animation Groups组合动画

之前的几篇中我们学习了如何对Layer加入多个单独的动画,但是如何让他们同步并保持次序呢
对时间的掌握是比较复杂的,CAAnimationGroup应运而生

CAAnimationGroup

CAAnimationGroup继承自CAAnimation,拥有CAAnimation的全部属性,比如beginTime\duration\toValue\removedOnCompletion\delegate等等
CAAnimationGroup有一个animations数组,用于添加动画,下面我们用示例来展示一下

下面我们来创建一个CAAnimationGroup

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

下面我们创建一个scale动画

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

你也许会注意到我们并没有为动画指定fillMode\duration等等属性
没错,这些属性会由CAAnimationGroup提供
我们创建另外二个动画


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

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

groupAnimation.animations = [scaleDown, rotate, fade]
loginButton.layer.addAnimation(groupAnimation, forKey: nil)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值