2014-10-18 46 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