添加到UIImageView的按钮没有响应

时间:2011-04-24 12:02:05

标签: iphone objective-c xcode uiimageview uibutton

我正在使用UIImageView,在我的应用中添加了两个按钮作为子视图。但是,如果我尝试单击按钮,则它们没有响应。有这个原因还是修复?

- (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];
    }
}

2 个答案:

答案 0 :(得分:2)

默认情况下,图像视图设置为禁用用户交互。试试imageView.userInteractionEnabled = YES;

答案 1 :(得分:1)

将userInteractionEnabled设置为YES

对于UIImageView ....

  

此属性继承自   UIView父类。这个班   更改此默认值   财产到NO。