如何暂停 uiview 动画并将其留在原处?
//#define ANIMATION_WORM_OPTIONS (UIViewAnimationOptionCurveLinear|
// UIViewAnimationOptionBeginFromCurrentState)
- (IBAction)pressUpid)sender {
[self.game wormUp];
[self.gameScene.wormView.layer removeAllAnimations];
[UIView animateWithDuration:5 delay:0 options:ANIMATION_WORM_OPTIONS
animations:^{
[self.gameScene.wormView moveUp];
} completion:^(BOOL finished) {
}];
}
- (IBAction)pressRightid)sender {
[self.game wormRight];
[UIView animateWithDuration:5 delay:0 options:ANIMATION_WORM_OPTIONS
animations:^{
[self.gameScene.wormView moveRight];
} completion:^(BOOL finished) {
}];
}
例如,这是我想要做的:
当我第一次点击“右”时,一条蠕虫会向右移动。
然后当我在蠕虫向右移动时点击“向上”,蠕虫应该停止并向上。
我的代码中的问题是 removeAllAnimations 将首先将蠕虫放在第一个动画结束的末尾,然后开始上升。
Best Answer-推荐答案 strong>
您需要将 View 的框架更改为停止位置框架。只需在 view.layer 上执行 removeAllAnimation 之前添加以下内容。
self.theView.frame = [self.theView.layer.presentationLayer frame];
关于ios - 如何暂停uiview动画?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/26579338/
|