按下按钮时停止动画

Posted

技术标签:

【中文标题】按下按钮时停止动画【英文标题】:stop animation when button is pressed 【发布时间】:2014-12-26 07:59:32 【问题描述】:

我有下面的代码,它是一个 UIButton 的动画。但是当按下按钮时,我希望动画立即停止并做其他事情,而如果动画继续,它会做其他事情。我的问题是,即使我按下按钮,动画也会继续,它会执行第 1 步和第 2 步。

我在代码中遗漏了什么?

int frame1 = 600;
    int frame2 = 100;
    hit11 = [[UIButton alloc]initWithFrame:CGRectMake((arc4random() % (frame1 - frame2)+frame2),200,20,20)];
      [hit11 addTarget:self action:@selector(hit:) forControlEvents:UIControlEventTouchUpInside];
    [hit11 setBackgroundImage:[UIImage imageNamed:@"touchrightdown.png"] forState:UIControlStateNormal];
    [self.view addSubview:hit11];
    [UIView animateWithDuration:2.0 delay:0.1 options:UIViewAnimationCurveEaseIn | UIViewAnimationOptionAllowUserInteraction animations:^
        hit11.transform = CGAffineTransformMakeScale(7,7);
        hit11.alpha=0.5;
     completion:^(BOOL finished) 
        if (finished) 
            //DO STEP 2.
hit11.hidden=YES;

        



        NSLog(@"got hit");


    ];

-(void) hit:(UIButton*)sender
    NSLog(@"1/10");
    //DO STEP 1.

【问题讨论】:

【参考方案1】:

尝试添加这个:

[sender.layer removeAllAnimations];

在您的点击中:(UIButton*)sender 方法。

【讨论】:

以上是关于按下按钮时停止动画的主要内容,如果未能解决你的问题,请参考以下文章

按下“停止”按钮时如何停止动画并冻结图像

按下释放按钮时停止当前动画

每次按下按钮“WPF动画”时,我如何重播相同的动画

Swift - 按下按钮时,如果动画已经在播放,则将其重置为开始

IE 上的 Jquery Animate 出错

当用户按下主页按钮时停止声音