4

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

请解决我的问题。

4

3 回答 3

8

您是否尝试过 AllowUserInteraction 选项?

 [UIView animateWithDuration:5.0 
                       delay:0.0         
                     options:UIViewAnimationOptionAllowUserInteraction
                  animations:^{ // move the button }
                 completion:^(BOOL finished){}];
于 2012-10-12T14:12:22.693 回答
1

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

此外,您可以实施

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

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

于 2012-10-12T14:12:06.797 回答
0

作为UIButtonUIControl哪个继承继承UIView,我相信您正在使用基于块的方法来为您的按钮设置动画animateWithDuration:delay:options:animations:completion:

UIViewAnimationOptionAllowUserInteraction当您为 UIButton 设置动画以允许识别某些用户交互时,您需要添加该选项。正如您所试验的那样,默认情况下在动画期间禁用用户交互。

于 2012-10-12T14:12:23.223 回答