当前位置: 首页 > 知识库问答 >
问题:

使用removeAllAnimations停止UIViewAnimation

游炳
2023-03-14

我有一个简单的UILabel,当你长按它时,它就会开始旋转。我使用以下代码成功地实现了这一点:

-(IBAction)longPressEffect:(UILongPressGestureRecognizer *)sender {
    if (sender.state == UIGestureRecognizerStateBegan) {

        UIViewAnimationOptions animationOptions = UIViewAnimationCurveLinear | UIViewAnimationOptionRepeat;

        [UIView animateWithDuration:0.4 delay:0.0 options:animationOptions animations:^ {
            labelObject.transform = CGAffineTransformMakeRotation(DegreesToRadians(angle));
        } completion:nil];

        angle = angle + 180;
    }
    else if (sender.state == UIGestureRecognizerStateEnded) {
        ;
    }
}

用户只需双击标签,就可以在任何时候停止这个动画。下面是代码:

-(IBAction)doubleTapEffect:(UITapGestureRecognizer *)sender {
    [labelObject.layer removeAllAnimations];
    labelObject.transform = CGAffineTransformMakeRotation(DegreesToRadians(0));

}

问题是,下次你长按标签时,它没有反应。旋转动画不会再次启动。你必须再次点击它才能让它再次运行。

所以模式是:
1)长按-动画开始
2)双击-动画停止
3)长按-什么都没有发生
4)再次长按-动画再次开始

我该怎么解决这个问题?

共有1个答案

拓拔曦
2023-03-14

它是动画的——只是看起来不像是,因为你一直在增加180度的角度。

假设角度一开始是180,则可以从0到180,然后180到180,再180到180。然后角度为180,将角度设置为360,初始动画为360,将其解释为0,因此标签的动画范围为0到0。

改变

angle = angle + 180;

angle = angle + 30;

你应该看到旋转的发生。

这个链接可能会帮助你做一个连续的轮换,如果这是你想做的:

如何连续旋转UIButton并使其停止?

 类似资料:
  • 启动无限循环后,我无法关闭JFrame。 我想停止无限循环使用停止按钮。 我用开始按钮开始一个无限循环。我想用“停止”按钮关闭那个回路。 > if(stop.getModel(). isP的()){中断;}不工作 actionListener用于识别按钮单击并在循环也不起作用时使用中断语句终止 点击停止按钮,无限循环必须终止。在使用start Button启动无限循环后,我无法使用JFrame中的

  • 我有一个程序,它每秒钟响一次,直到停止。问题是,在我按下“开始”并发出嘟嘟声后,我无法单击“停止”按钮,因为窗口冻结。欢迎任何帮助。

  • 问题内容: 我有一个使用线程并发出大量HTTP请求的python脚本。我认为正在发生的事情是,正在读取HTTP请求(使用urllib2)时,它正在阻塞并且没有响应以停止程序。有没有办法解决? 问题答案: 在Windows上,唯一确定的方法是使用。立即停止每个python脚本! (请注意,在某些键盘上,“中断”被标记为“暂停”。)

  • 问题内容: 以下逻辑用于在我们支持的所有移动设备上同时使用jquery 1.4.4和1.7.1: 但是在iOS 5.0.1中,上面的代码输入了错误功能警报,而没有任何实际的HTTP请求。在我需要重新启动iPhone之前,似乎只有一个AJAX请求可以工作。这是已知的jquery / iOS 5.0问题吗?我该如何调试?有什么解决方法吗?我不知道从哪里开始寻找。 注意 :我注意到在服务器端,发出请求而

  • 问题内容: 我有一个包含在每个页面中。在配置中,我创建一个看起来像这样的数组: 然后,我有了,几乎每个页面也都包含,我必须使用它来访问它- 这 就是我要摆脱的东西! 如何在不使用代码的情况下访问代码的其他部分? 谁能解释, 为什么 我不应该在示例中使用?有人说这是一个不好的语气,有人说这是不安全的? 编辑1: 我在哪里以及如何使用它的示例: 编辑2: 按照Vilx的建议,将所有这些内容放入类中会很

  • 我有一个包含到每个页面。在配置中,我创建了一个类似于以下内容的数组: 然后我有,它也包含在几乎每个页面中,在那里我必须使用来访问它-这就是我想要摆脱的! 如何在不使用的情况下访问代码的其他部分? 谁能解释一下,为什么我不应该在我的示例中使用?有人说这是一个坏的语气,其他人说这是不安全的? 我在哪里以及如何使用它的示例: 按照Vilx的建议,将所有这些都放在类中会很酷,但在这种情况下,我将如何将其与