多个快速动画并行不工作

时间:2014-10-18 10:06:10

标签: ios animation swift

我让这段代码在视图中为一些元素(总共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次或更多次),只有一个是动画,动画非常不稳定。我知道我应该在动画块中写下所有内容,但我无法弄清楚如何去做。 请帮帮我。

1 个答案:

答案 0 :(得分:5)

将for循环放在动画块中。

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