2012-04-19 70 views
7

如果有两个动画按顺序发生,我想删除第一个动画,并从当前位置开始第二个动画。在将第二个动画添加到图层之前,我使用[图层removeAllAnimations]取消第一个动画,图层始终返回到初始位置。我知道这是removeAllAnimations的默认操作,但我想知道是否有任何方法可以将图层设置为保持当前位置。 非常感谢。如何让动画视图停留在当前位置[layer removeAllAnimations]

更新 - 我通过获取presentationLayer位置并将其分配给模型图层位置来完成此操作。我也用 - (void)animationDidStop:(UIAnimation *)动画完成:(BOOL)标志; 检查动画是否完成。

+1

您不必调用'removeAllAnimations'(如果你affraid内存泄漏)。无论如何:'animation.fillMode = kCAFillModeForwards; animation.removedOnCompletion = NO;'通常会这样做。 – 2012-04-19 19:17:45

+0

谢谢rokjarc。是的,你是对的,但我想要做的是取消第一个动画,然后开始第二个动画。我通过获取presentationLayer位置并将其分配给模型图层位置来完成此操作。之后,我还修改animationDidStop委托方法以检查动画是否停止。 – Jason 2012-04-19 19:31:51

+0

它也帮助了我。 – iOmi 2012-12-26 12:38:48

回答

1

你可以使用:myView.frame = [[myView.layer表示层]帧]

相关问题