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