¿Cómo rotar un button UIB en Swift?

Solía ​​rotar una image de esta manera:

self.image.transform = CGAffineTransformRotate(self.image.transform, CGFloat(M_PI)) 

Pero este código no funciona para un button:

 let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation") rotateAnimation.fromValue = 0.0 rotateAnimation.toValue = CGFloat(M_PI) 

Pero no sé cómo asignar esa rotation al button. ¿Cómo puedo hacerlo?

Has creado una CABasicAnimation . Ahora debería agregarlo a un CALayer . Intente usar este código:

 button.layer.addAnimation(rotateAnimation, forKey: "myAnimationKey"); 

Establezca una duración de esta manera:

 let duration = 1.0 rotateAnimation.duration = duration 

Un UIButton tiene una propiedad de capa.

Simplemente agregue su animation a la capa de su button.

 //If you want a duration rotateAnimation.duration = yourDuration //You can set a key, but must not. button.layer.addAnimation(rotateAnimation, forKey: nil)