如何在UIButton动画时识别触摸事件

时间:2012-10-12 14:07:49

标签: iphone objective-c ios xcode

我想用动画移动UIButton,当用户触摸它时它会移动,我想要识别该事件,但在动画期间UIButton不发送任何事件。

请解决我的问题。

3 个答案:

答案 0 :(得分:7)

您是否尝试过AllowUserInteraction选项?

 [UIView animateWithDuration:5.0 
                       delay:0.0         
                     options:UIViewAnimationOptionAllowUserInteraction
                  animations:^{ // move the button }
                 completion:^(BOOL finished){}];

答案 1 :(得分:0)

在动画期间,无论此属性中的值如何,都会暂时禁用动画中涉及的所有视图的用户交互。您可以通过在配置动画时指定UIViewAnimationOptionAllowUserInteraction选项来禁用此行为。

此外,您可以实施

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

在superview中捕获事件并查看事件是否指向按钮。

答案 2 :(得分:0)

由于UIButton继承自继承UIControl的{​​{1}},我相信您使用基于块的方法为按钮设置动画UIView

在为UIButton设置动画时,您需要添加选项animateWithDuration:delay:options:animations:completion:,以便识别某些用户互动。在您尝试实验时,默认情况下在动画期间禁用用户交互。