2011-08-16 16 views
34

Estoy tratando de realizar la repetición automática de la animación de rotación de mi imagen con CABasicAnimation. Intenté buscar en la web cómo establecer dicha propiedad, pero no pude encontrar eso. ¿Realmente no es una propiedad para la animación CA? Sé que puede establecer un valor enorme (here) en la propiedad repeatCount pero, oye, ¿por qué entonces UIView animateWithDuration tiene una opción UIViewAnimationOptionRepeat y cuál es el valor codificado para ello?CABasicAnimation repeat ilimitado sin HUGE_VALF?

+0

El valor es '1e50', en' math.h'. – bcattle

+0

En XCode ⌘, haga clic para ir a la definición de algo. – bcattle

Respuesta

101

No, esta es la forma en que se supone que debes hacerlo de acuerdo con the documentation.

Al establecer esta propiedad en HUGE_VALF, la animación se repetirá para siempre.


Actualización para Swift:

HUGE_VALF no está expuesto a Swift. Sin embargo, mi comprensión de this page es que HUGE_VALF está destinado a ser infinito (de hecho, INFINITY se define como HUGE_VALF). Desde FloatingPointType protocolo de Swift proporciona una static var infinity, sólo tiene que escribir

myAnimation.repeatCount = .infinity 
+0

en iOS 7 y superior, se detiene después de cierto intervalo. Sin embargo, cuál es el motivo. –

+0

'Float.infinity' en Swift. Los documentos mencionados mencionan 'HUGE_VALF' pero no indican cómo expresarlos en Swift. –

4

para SWIFT 3.0 y superior

   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") 
Cuestiones relacionadas