我有一个用户可以触摸的圆圈,当您触摸它时,它将更改大小,然后恢复到其原始大小以指示您已触摸它。我希望用户能够随时随地触摸它,而不管它是否正在进行动画制作。我更新了我的动画以使用UIViewAnimationOptionAllowUserInteraction
标志,它允许我在动画期间触摸它,但它不像我预期的那样行事。在用户交互过程中重置动画状态
我想我需要以某种方式停止当前正在播放的动画,将大小重置为正常,然后再播放,这是否正确,如果是这样,我该怎么做?如果不是,我该怎么办?
- (void)pop{
[view.layer removeAllAnimations];
[UIView animateWithDuration:0.2
delay:0.0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAllowUserInteraction // reverse back to original value
animations:^{
// scale down 20%
self.transform = CGAffineTransformMakeScale(0.8, 0.8);
} completion:^(BOOL finished) {
self.transform = CGAffineTransformMakeScale(1, 1);
}];
}
惯于使动画看起来光滑,但它不会像用户按下两次(因为它是从当前状态进行,而不是重置到原来的状态?) – Chris