SpringWithDamping 用于 CALayer 动画?

2024-02-08

在玩了很多之后UIViewiOS 7 中引入了动态动画,最值得注意的是:

[UIView animateWithDuration: delay: usingSpringWithDamping: initialSpringVelocity: options: animations: completion:];

我想知道是否有一个相当于“SpringWithDamping/Velocity”的方法可以在创建时直接访问CALayer动画片? IE。要么通过CATransaction, CABasicAnimation或以其他方式...

Thanks


in iOS9苹果终于做出了CASpringAnimation类公开。

你可以这样使用它:

let spring = CASpringAnimation(keyPath: "position.x")
spring.damping = 5
spring.fromValue = myLayer.position.x
spring.toValue = myLayer.position.x + 100.0
spring.duration = spring.settlingDuration
myLayer.addAnimation(spring, forKey: nil)

请注意,您无法设置动画持续时间 - 您需要询问CASpringAnimation类为settlingDuration(例如“弹簧系统需要多长时间才能稳定下来”),然后将其设置为动画的持续时间。

检查头文件CASpringAnimation- 它公开了许多您可以调整的弹簧系统变量 - 刚度、质量等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringWithDamping 用于 CALayer 动画? 的相关文章

随机推荐