iOS - 如何在特定帧停止UIView动画

时间:2012-10-30 13:59:29

标签: ios animation frame

  

可能重复:
  Cancel a UIView animation?

我需要停止UIView动画。我知道我可以使用[object.layer removeAllAnimations];但这不会停止动画,但是“跳过”它。所以,如果我的原始动画是:

[UIView animateWithDuration:8.0 delay:0.0 options:UIViewAnimationOptionAllowUserInteraction animations:^ (void) {
        [ingredient setFrame:CGRectMake(20, 200, 34, 45)];
    } completion:^ (BOOL finished) {
        NSLog(@"Completed");
    }];

对象成分将具有动画完成后的帧。相反,我希望对象在特定点停止,而动画不会完成。

1 个答案:

答案 0 :(得分:1)

如果您想暂停,但不打算重新开始,请尝试:

CALayer *objectPresentationLayer = [object.layer presentationLayer];
object.layer.transform = objectPresentationLayer.transform;
[object.layer removeAllAnimations];

如果您想暂停和恢复动画,请从Apple Q& A中查看: https://developer.apple.com/library/ios/#qa/qa2009/qa1673.html