我有一个UIView动画,我需要取消在我的iOS应用程序。我试过这个:取消UIView动画 - self.view.layer removeAllAnimations不起作用
[self.view.layer removeAllAnimations];
但它没有奏效。动画继续。这里是我的动画代码:
[UIView animateWithDuration:1.4 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
recognizer.view.transform = CGAffineTransformTranslate(recognizer.view.transform, translation.x, translation.y);
} completion:^(BOOL finished) {
NSLog(@"completed animation, now do whatever");
}];
没有任何人有任何想法,为什么它不工作?
您添加的动画识别器视图,因此你将不得不从同一观点的图层删除。因此,您可能需要[recognition.view.layer removeAllAnimations]而不是[self.view.layer removeAllAnimations]。 – Till
嗨。谢谢 - 现在发生了一些事情,但是这引起了另一个问题。它将动画结束并立即停止在那里。我希望它停止在当前位置 - 当我想停止动画时它的位置 - 不会跳到最后。这可以这样做吗? –
查看'recognizer.view.layer.presentationLayer'。它将具有中间变换,只需将其设置为当前图层:'Recognizer.view.layer.transform = recognitionizer.view.layer.presentationLayer.transform;'...可能需要更多工作。 – Mazyod