2016-06-06 9 views
1

Auf Knopfdruck verwende ich diese Codezeile, um mein UIImageView zu drehen. Aber es funktioniert nur einmal. Wie kann ich bei jedem Tastenklick unendlich viele Male machen?Warum dreht sich UIImageView nur einmal?

self.imageView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2)) 

Antwort

3

Sie verwenden müssen CGAffineTransformRotate statt CGAffineTransformMakeRotation:

func rotateImageView() { 
    UIView.animateWithDuration(1, delay: 0, options: UIViewAnimationOptions.CurveLinear, animations: {() -> Void in 
       self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, CGFloat(M_PI_2)) 
       }) { (finished) -> Void in 
        if finished { 
         self.rotateImageView() 
        } 
     } 
} 

Wenn Sie es stoppen möchten, können Sie anrufen:

self.imageView.layer.removeAllAnimations() 
+0

Dont verwenden 'UIViewAnimationOptions.Repeat', weil am Ende Die Animation setzt die Transformation zurück, wodurch die Ansicht in ihre ursprüngliche Position zurückspringt. Es ist nicht schön, sie zu sehen. –