2014-10-18 63 views
1

我有這段代碼在視圖中爲一些元素(總數爲3)設置了動畫。並行多個快速動畫不起作用

for element in elements{   
     if element.value != radians { 
      UIView.animateWithDuration(0.99, 
       animations: { 
        element.transform = CGAffineTransformMakeRotation(CGFloat(radians)) 
       }, completion: { 
        finished in 
        element.value = radians 
      }) 
     } 
    } 

當2個以上的元素應被動畫(UIView.animateWithDuration被稱爲2次或更多次一個接一個),只有一個是動畫和動畫是相當不穩定。我知道我應該在動畫塊中寫下所有內容,但我無法弄清楚如何去做。 請幫幫我。

回答

4

只需將for循環放入動畫塊。

UIView.animateWithDuration(0.99, 
    animations: { 
    for element in elements { 
     if element.value != radians { 
      element.transform = CGAffineTransformMakeRotation(CGFloat(radians)) 
     } 
    } 
    }, completion: { _ in 
    element.value = radians 
    }) 
+0

我在想這件事,但是沒關係(安全)? – 2014-10-18 10:35:51

+0

確實。爲什麼不應該這樣?這是如何完成的。 – Mundi 2014-10-18 10:36:26

+0

我認爲只有作業可以寫在該塊中。 – 2014-10-18 10:38:13