我有一個用戶可以觸摸的圓圈,當您觸摸它時,它將更改大小,然後恢復到其原始大小以指示您已觸摸它。我希望用戶能夠隨時隨地觸摸它,而不管它是否正在進行動畫製作。我更新了我的動畫以使用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