2016-01-04 85 views
0

我想動畫我的應用程序的每個按鈕,但我想保持代碼清潔。我創建了以下代碼:動畫應用程序的按鈕

UIView.animateWithDuration(0.1 , 
      animations: { 
       self.mais1Btn.transform = CGAffineTransformMakeScale(1.1, 1.1) 
      }, 
      completion: { finish in 
       UIView.animateWithDuration(0.1){ 
        self.mais1Btn.transform = CGAffineTransformIdentity 
       } 
     }) 

但我不想複製和粘貼代碼中的每個IBAction中的代碼。我不認爲這是更好的方式。我想創建一個單獨的課程,並改變按鈕的類,但我不認爲這是可能的,因爲我必須參考網點。

任何人都知道更好的方法來做到這一點?

+0

你也可以繼承所有的按鈕,添加一個方法來製作動畫在該子類。後來你可以調用該方法來執行動畫 –

+0

,但是我如何創建一個方法來緩衝按鈕?我試圖做「self.transform」,但沒有工作 –

+0

簡單的子類'UIButton'幷包含一個執行這個動畫的實例方法。你仍然可以將它們與Storyboard一起使用,只要確保將它們的類更改爲新創建的子類即可。 –

回答

2

按鈕

extension UIButton { 
    func doMyAnimation() { 
    UIView.animateWithDuration(0.1 , 
     animations: { 
      self.transform = CGAffineTransformMakeScale(1.1, 1.1) 
     }, 
     completion: { finish in 
      UIView.animateWithDuration(0.1){ 
       self.transform = CGAffineTransformIdentity 
      } 
    })   
    } 
} 

創建擴展和簡單的調用myButton.doMyAnimation()只要你想製作動畫

+0

在我的項目中,我創建了擴展? –

+0

創建一個新的swift文件並使用上面的代碼,它將適用於所有UIButtons –

+0

不錯!它效果很好。它之前沒有工作,因爲我忘了在我的文件中導入UIKit。謝謝您的幫助。 –