假设我有两个单独工作的动画,但我希望它们同时工作。
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.)我的第二次尝试是在它自己独特的线程中调用每个动画......这实现了让它们同时动画的目标,但我真的需要多线程来做到这一点吗?肯定有更好的办法...
PS:CGAffineTransform 是否有某种组动画,就像 CAKeyFrameAnimation 有 CAAnimationGroup 一样?
提前致谢。