OStack程序员社区-中国程序员成长平台

标题: ios - 如何暂停uiview动画? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 12:17
标题: ios - 如何暂停uiview动画?

如何暂停 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-推荐答案


您需要将 View 的框架更改为停止位置框架。只需在 view.layer 上执行 removeAllAnimation 之前添加以下内容。

self.theView.frame = [self.theView.layer.presentationLayer frame];

关于ios - 如何暂停uiview动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26579338/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4