2016-06-07 28 views
2

我試圖創建一個動畫之前跳的按鈕旋轉圖像,但圖像動畫前跳,也就是變成180度,並開始動畫CGAffineTransformRotate - 動畫

我的代碼:

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

我真的不知道爲什麼會發生這種情況?

請幫助我。

回答

1

這對我的作品

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)) 
} 

雖然不能完全肯定,我想下面的圖片可以說明,爲什麼上述工作的代碼。你可以看到,當你旋轉一個UIView時,視圖的邊界可能會改變並超過它的父視圖(在下圖中的紅線之上),所以如果你設置clipToBounds爲true,那麼轉換可能會失敗。

enter image description here