I’m trying to animate a UIButton. But during it’s animation, there is no interaction with the UIButton. Expected behavior is to be able to click on the button while it’s moving. Here’s the code snippet of the UIButton and animation:
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 selector just displays an NSLog to show if the button respond to it or not. Any help would be appreciated.
There were some questions here recently about this. The animation is purely visual. You can tap the button in it’d old frame until the animation is complete, when it finishes, the actual button jumps.
EDIT:
This answer is what I was referring to. You need to manually move the button with an NSTimer, apparently. See the linked question/answer for more.
Other folks suggest passing
UIViewAnimationOptionAllowUserInteractionas a UIViewAnimation option.