CALayer动画中如何使用SpringWithDamping?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (82)

在玩了很多次之后UIViewiOS 7中引入了动态动画,最显著的是:

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

我想知道是否有一个与“SpringWithDamping/流速”方法等价的方法,可以在创建CALayer动画?即要么通过CATransactionCABasicAnimation或者其他的..。

谢谢

提问于
用户回答回答于

iOS 9:可以这样用:

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-它暴露了许多弹簧系统变量,你可以调整-刚度,质量等。

用户回答回答于

扫码关注云+社区

领取腾讯云代金券