22、Core Animation 深入解析:冻结动画、过渡效果与动作机制

Core Animation 深入解析:冻结动画、过渡效果与动作机制

1. 冻结动画

在动画操作中,我们可以在图层级别冻结动画,这与之前使用属性动画器的效果类似。CALayer 采用了 CAMediaTiming 协议,这意味着图层可以有一个速度属性,该属性会影响附加到它的任何动画。例如,速度为 2 的 CALayer 会在 5 秒内播放一个原本 10 秒的动画,而速度为 0 的 CALayer 则会有效地冻结附加到该图层的任何动画。

图层还可以有一个时间偏移(timeOffset),通过更改时间偏移,我们可以显示图层动画的任何单帧。

以下是一个冻结 CAShapeLayer 动画的示例代码:

let shape = CAShapeLayer()
shape.frame = v.bounds
v.layer.addSublayer(shape)
shape.fillColor = UIColor.clear.cgColor
shape.strokeColor = UIColor.red.cgColor
let path = CGPath(rect:shape.bounds, transform:nil)
shape.path = path
let path2 = CGPath(ellipseIn:shape.bounds, transform:nil)
let ba = CABasicAnimation(keyPath:#keyPath(CAShapeLayer.path))
ba.duration = 1
ba.fromValue = path
ba.toValue = path2
shape.sp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值