CABasicAnimation无限重复没有HUGE_VALF?

时间:2011-08-16 17:47:07

标签: iphone objective-c animation repeat cabasicanimation

我正在尝试使用CABasicAnimation执行自动重复我的图像旋转动画。我试图在网上搜索如何设置这样的属性,但无法找到。 CA动画真的没有这样的属性吗?我知道你可以为repeatCount属性设置一些巨大的值(here),但是,为什么UIView animateWithDuration有一个选项UIViewAnimationOptionRepeat以及它的硬编码值是什么?

2 个答案:

答案 0 :(得分:123)

不,这是你应该根据the documentation进行的方式。

  

将此属性设置为HUGE_VALF将导致动画永远重复。


更新Swift:

HUGE_VALF不会暴露给Swift。但是,我对this page的理解是,HUGE_VALF意图是无穷大(事实上,INFINITY被定义为HUGE_VALF)。由于Swift的FloatingPointType协议提供static var infinity,您只需编写

即可
myAnimation.repeatCount = .infinity

答案 1 :(得分:7)

  

对于swift 3.0及以上版本

              let rotationAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
          rotationAnimation.fromValue = 0
          rotationAnimation.toValue = CGFloat.pi * 2
          rotationAnimation.duration = 1
          rotationAnimation.repeatCount = .infinity
          holderView.btnRefresh.layer.add(rotationAnimation, forKey: "spinAnimation")