web-dev-qa-db-ja.com

CABasicAnimation HUGE_VALFなしの無制限の繰り返し?

CABasicAnimationで画像回転アニメーションの自動繰り返しを実行しようとしています。私はそのようなプロパティを設定する方法をウェブで検索しようとしましたが、それを見つけることができませんでした。本当にCAアニメーションにはそのような特性はありませんか?いくつかの大きな値( here )をrepeatCountプロパティに設定できることは知っていますが、UIView animateWithDurationにオプションUIViewAnimationOptionRepeatがあり、その値がハードコードされているのはなぜですか?

40
Centurion

いいえ、これは ドキュメント に従って実行することになっている方法です。

このプロパティをHUGE_VALFに設定すると、アニメーションが永久に繰り返されます。


Swiftの更新:

HUGE_VALFはSwiftに公開されていません。ただし、 このページ からの私の理解は、HUGE_VALFが無限大であることを意図していることです(実際、INFINITYHUGE_VALFとして定義されています)。 SwiftのFloatingPointTypeプロトコルはstatic var infinityを提供するため、次のように簡単に記述できます。

myAnimation.repeatCount = .infinity
130
jtbandes

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")
7
Hiren Panchal