web-dev-qa-db-fra.com

CABasicAnimation répétition illimitée sans HUGE_VALF?

J'essaie d'effectuer la répétition automatique de mon animation de rotation d'image avec CABasicAnimation. J'ai essayé de rechercher sur le Web comment définir une telle propriété, mais je n'ai pas pu le trouver. N'est-ce vraiment pas une telle propriété pour l'animation CA? Je sais que vous pouvez définir une valeur énorme ( ici ) pour la propriété repeatCount mais bon, pourquoi UIView animateWithDuration a-t-il alors une option UIViewAnimationOptionRepeat et quelle valeur est codée en dur pour cela?

40
Centurion

Non, c'est ainsi que vous êtes censé le faire selon la documentation .

Définir cette propriété sur HUGE_VALF provoquera la répétition permanente de l'animation.


Mise à jour pour Swift:

HUGE_VALF n'est pas exposé à Swift. Cependant, ma compréhension de cette page est que HUGE_VALF est destiné à être infini (en fait, INFINITY est défini comme HUGE_VALF). Étant donné que le protocole FloatingPointType de Swift fournit un static var infinity, vous pouvez simplement écrire

myAnimation.repeatCount = .infinity
130
jtbandes

Pour Swift 3.0 et supérieur

              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