2016-06-07 11 views
2

Ich versuche, eine Animation dreht Bild in der Schaltfläche zu erstellen, aber das Bild vor Animation springt, das heißt, dreht sich um 180 Grad und beginnt die AnimationCGAffineTransformRotate - Sprung vor Animation

Mein Code:

@IBAction func switchListButtonClick(sender: UIButton) { 
    UIView.animateWithDuration(1) { 
     self.switchListButton.imageView?.transform = CGAffineTransformRotate((self.switchListButton.imageView?.transform)!, CGFloat(-M_PI_2)) 
    } 
} 

Ich kann wirklich nicht herausfinden, warum das passiert?

Hilf mir bitte. Diese

Antwort

1

funktioniert für mich

self.switchListButton.imageView!.clipsToBounds = false; 
self.switchListButton.imageView!.contentMode = .Center; 

UIView.animateWithDuration(1) { 

    self.switchListButton.imageView?.transform = CGAffineTransformRotate((self.switchListButton.imageView?.transform)!, CGFloat(-M_PI_2)) 
} 

Obwohl nicht ganz sicher, ich denke, Bild unten zeigen könnte, warum der Code oben arbeiten. Sie können sehen, dass beim Drehen einer UIView die Grenzen der Ansicht die übergeordnete Ansicht (über der roten Linie in der unteren Abbildung) ändern und überschreiten können. Wenn Sie also clipToBounds auf "true" setzen, kann die Transformation fehlschlagen.

enter image description here