2017-09-15 196 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