2017-09-15 128 views
0

我正在使用2个动画。 当屏幕启动时,第一个动画开始于viewDidLoad将图像调整为初始大小

这个动画只适用于称为layer2layer3的2张图片。

当长按称为 layer0图像0​​
func firstAnimation(){ 
     UIView.animate(withDuration: 1, delay: 0, options: 
      UIViewAnimationOptions.repeat , animations: { 

       self.layer2.transform = CGAffineTransform(scaleX: 1.5, y: 1.5) 
       self.layer3.transform = CGAffineTransform(scaleX: 2, y: 2) 
     }, completion: { finished in 

     }) 
    } 

,然后firstAnimation()被停止由该代码:

layer2.layer.removeAllAnimations() 
layer3.layer.removeAllAnimations() 

和不同的动画被施加到layer2layer3

第二动画

func secondAnimation() { 
     UIView.animate(withDuration: 20, delay: 0, options: 
      UIViewAnimationOptions.curveEaseOut , animations: { 

       self.layer2.transform = CGAffineTransform(scaleX: 10, y: 10) 
       self.layer3.transform = CGAffineTransform(scaleX: 10, y: 10) 

     }, completion: { finished in 

     }) 
    } 

当我想再次删除第二个动画并推出第一个,2个图像二层,三层是从他们获得的,因为第二动画的大小开始。如何使用图像的初始大小重新启动第一个动画?

回答

0

您可以使用CGAffineTransform.identity重置已转换为原始比例的视图。

例如:

layer2.transform = .identity 
+0

一个完美的解决方案。谢谢你。 – mahdi