我正在尝试为UIButton设置动画。但是在动画过程中,它与UIButton没有交互。预期的行为是能够在按钮移动时单击它。这是UIButton和动画的代码片段:

UIImage *cloudImage = [UIImage imageNamed:@"sprite.png"];
UIButton moveBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[moveBtn setFrame:CGRectMake(0.0, 80.0, cloudImage.size.width, cloudImage.size.height)];
[moveBtn setImage:cloudImage forState:UIControlStateNormal];
[moveBtn addTarget:self action:@selector(hit:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:moveBtn];
CGPoint newLeftCenter = CGPointMake( 300.0f + moveBtn.frame.size.width / 2.0f, moveBtn.center.y);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:5.0f];
[UIView setAnimationRepeatCount:HUGE_VALF];
moveBtn.center = newLeftCenter;
[UIView commitAnimations];


hit选择器仅显示NSLog,以显示按钮是否响应。任何帮助,将不胜感激。

最佳答案

最近在这里有一些疑问。动画是纯视觉的。您可以在旧框架中点击按钮,直到动画完成为止,完成后,实际的按钮会跳转。

编辑:

我指的是This answer。显然,您需要使用NSTimer手动移动按钮。有关更多信息,请参见链接的问题/答案。

其他人建议通过UIViewAnimationOptionAllowUserInteraction作为UIViewAnimation选项。

10-08 05:48