2011-08-16 13 views
34

Sto cercando di eseguire la ripetizione automatica dell'animazione di rotazione dell'immagine con CABasicAnimation. Ho provato a cercare sul Web come impostare tale proprietà, ma non è stato in grado di trovarlo. Non è davvero una proprietà simile per l'animazione della CA? So che è possibile impostare un valore enorme (here) per ripetere la proprietà Conteggio ma, ehi, perché Uiview animateWithDuration ha un'opzione UIViewAnimationOptionRepeat e qual è il valore per esso hardcoded?CABasicRegistrazione illimitata senza HUGE_VALF?

+0

Il valore è '1e50', in' math.h'. – bcattle

+0

In XCode ⌘-clic per andare alla definizione di qualcosa. – bcattle

risposta

101

No, questo è il modo in cui si suppone di farlo in base a the documentation.

L'impostazione di questa proprietà su HUGE_VALF farà ripetere l'animazione per sempre.


Aggiornamento per Swift:

HUGE_VALF non sia esposto a Swift. Tuttavia, la mia comprensione da this page è che HUGE_VALF deve essere infinito (infatti, INFINITY è definito come HUGE_VALF). Dal momento che il protocollo di Swift FloatingPointType fornisce un static var infinity, si può semplicemente scrivere

myAnimation.repeatCount = .infinity 
+0

in iOS 7 e versioni successive, si interrompe dopo un determinato intervallo. Non è chiaro quale sia il motivo. –

+0

'Float.infinity' in Swift. I documenti refertati menzionano 'HUGE_VALF' ma non dicono come esprimere lo stesso in Swift. –

4

per SWIFT 3.0 e versioni successive

   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") 
Problemi correlati