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?
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
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")