Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIButton inside a UIView not working after UIView is animated

I have seen many questions in this forum which gives answer to this topic "UIButton inside a UIView, when animated doesn't work", but after having tried out the answers like

a) UIViewAnimationOptionAllowUserInteraction to the options
b) subView.setUserInteractionEnabled = YES
c) [button addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];

none of them is working for me :-(

Here is the scenario. App is in landscape mode and a UIView called menuView is placed at x=480,y=0. Its height=200 and width=150. So, when I tap the button on the top right corner, the following code is executed

- (IBAction)showMenu {
    [menuView setUserInteractionEnabled:YES];
    [optionsButton setUserInteractionEnabled:YES];
    [UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationCurveEaseOut |  UIViewAnimationOptionAllowUserInteraction
                     animations:^{
                         self.view.frame = CGRectOffset(self.view.frame, 0, 200);
                     }
                     completion:NULL];
}

Output?: View is appearing, but optionsButton inside the menuView is not clickable. I hooked up to an event, did an NSLog(@"Options button clicked"), but nothing happens :-(

Please tell me what I am doing wrong?

Update: When I place the subview that is "menuView" inside the self.view, then upon running and click the optionsButton, I get the NSLog message. Only if I specify the origin.x of menuView to be 480 and above, it doesn't work.

like image 886
thandasoru Avatar asked Mar 03 '13 09:03

thandasoru


1 Answers

In my case missing a constraint on the height of the containing view caused the view height to be 0. Buttons were visible, below the view, but untouchable.

like image 69
Dan Loughney Avatar answered Oct 06 '22 00:10

Dan Loughney