CABasicAnimation无限重复没有HUGE_VALF?

Cen*_*ion 40 iphone animation objective-c repeat cabasicanimation

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

jtb*_*des 129

不,这是你应该根据文档做的方式.

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


Swift更新:

HUGE_VALF不会暴露给Swift.但是,我从这个页面的理解是HUGE_VALF意图是无穷大(事实上,INFINITY定义为HUGE_VALF).由于Swift的FloatingPointType协议提供了一个static var infinity,你可以简单地写

myAnimation.repeatCount = .infinity
Run Code Online (Sandbox Code Playgroud)


Hir*_*hal 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")
Run Code Online (Sandbox Code Playgroud)