개별적으로 작동하는 두 개의 애니메이션이 있다고 가정 해 봅니다. 그러나 동시에 작동하도록하고 싶습니다.Monotouch CGAffineTransform, 동일한 뷰에서 동시에 많은 Affine Transforms 애니메이션 적용
public static void SlideAnimation(string name, UIView view, float xOffset, float yOffset, float duration)
{
if (view != null)
{
// ****** Begin Animation ****** //
UIView.BeginAnimations(name + " SlideAnimation");
UIView.SetAnimationDuration(duration);
UIView.SetAnimationDelegate (view);
CGAffineTransform move = CGAffineTransform.MakeTranslation(xOffset, yOffset);
CGAffineTransform transforms = move;
view.Transform = transforms;
UIView.CommitAnimations();
// ****** End Animation ****** //
}
}
그리고
public static void GrowAnimation(string name, UIView view, float xScale, float yScale, float duration)
{
if (view != null)
{
// ****** Begin Animation ****** //
UIView.BeginAnimations(name + " GrowAnimation");
UIView.SetAnimationDuration(duration);
UIView.SetAnimationDelegate (view);
CGAffineTransform scale = CGAffineTransform.MakeScale(xScale, yScale);
CGAffineTransform transforms = scale;
view.Transform = transforms;
UIView.CommitAnimations();
// ****** End Animation ****** //
}
}
위의 두 가지 기능
은 모두 CGAffineTransform이의 내가 정확히 같은 시간에 같은 뷰를 실행하려는 가정 해 봅시다 사용하는 애니메이션이다. 나는 그 결과를 슬라이딩과 동시에 성장시키는 관점으로하고 싶다.1.) 첫 번째 시도는 하나의 애니메이션을 호출 한 후 바로 다음 애니메이션을 호출하는 것이 었습니다. 그러나 그것은 실패했다. 기본적으로 첫 번째 애니메이션에 애니메이션을 적용하기 시작했지만 다음 애니메이션으로 넘어 가면 첫 번째 애니메이션이 중단되었습니다. 결과는 두 번째 애니메이션에만 애니메이션을 적용하고 첫 번째 애니메이션을 완전히 건너 뛰는 것이 었습니다 ... 마치 한 번에 하나의 애니메이션 만 수행 할 수있는 것처럼 거의되었습니다.
2.) 두 번째 시도는 각 애니메이션을 고유 한 스레드로 호출하는 것입니다.이 작업을 동시에 애니메이션화하는 목표는 달성되었지만 실제로 이렇게하려면 다중 스레드가 필요합니까? 더 좋은 방법이 있어야합니다 ...
추 신 : CAKeyFrameAnimation에 CAAnimationGroup이있는 것처럼 CGAffineTransform에 일종의 그룹 애니메이션이 있습니까?
미리 감사드립니다.