2016-01-04 46 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。谢谢您的帮助。 –