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

나는 이것에 대해 생각하고 있었지만 괜찮 았습니까? –

+0

사실. 왜 그렇게되지 않아야합니까? 이것이 어떻게 이루어 졌는지입니다. – Mundi

+0

그 블록에만 과제물을 쓸 수 있다고 생각했습니다. –

관련 문제