I am using a UIImageView with two buttons added as a subview in my app. However, if I try to click the 开发者_如何学Gobuttons, they are unresponsive. Is there a reason for this, or a fix?
- (void)showPopover {
if (isClicked == NO) {
if (popover == nil) {
popover = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Popover.png"]];
[popover setFrame:CGRectMake(190, -10, 132, 75)];
UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
[btn1 setFrame:CGRectMake(30, 30, 24, 24)];
[btn1 setBackgroundColor:[UIColor clearColor]];
[btn1 setImage:[UIImage imageNamed:@"Bookmark.png"] forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(addFav) forControlEvents:UIControlStateNormal];
[popover addSubview:btn1];
UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
[btn2 setFrame:CGRectMake(80, 30, 24, 24)];
[btn2 setBackgroundColor:[UIColor clearColor]];
[btn2 setImage:[UIImage imageNamed:@"ButtonBarReload.png"] forState:UIControlStateNormal];
[btn2 addTarget:self action:@selector(doHud) forControlEvents:UIControlStateNormal];
[popover addSubview:btn2];
isClicked = YES;
}
popover.alpha = 0.0;
isClicked = YES;
[self.view.superview addSubview:popover];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
popover.alpha = 1.0;
[UIView commitAnimations];
}
else if (isClicked == YES) {
[popover setAlpha:1.0];
isClicked = NO;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[popover setAlpha:0.0];
[popover removeFromSuperview];
[UIView commitAnimations];
popover = nil;
[popover release];
}
}
By default, image views are set to disable user interaction. Try imageView.userInteractionEnabled = YES;
.
set userInteractionEnabled to YES
For UIImageView....
This property is inherited from the UIView parent class. This class changes the default value of this property to NO.
精彩评论