子视图中的UILongPressGestureRecognizer无效

时间:2013-11-02 02:21:52

标签: ios objective-c long-press

- (void)viewDidLoad
{
    [super viewDidLoad];
    CGRect imageRect = (CGRect){105, 180, 110, 110};
    UIImage *image = [UIImage imageNamed: @"sasuke.png"];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:imageRect];
    [imageView setImage: image];
    UILongPressGestureRecognizer *longGnizer=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longGo:)];
    imageView.userInteractionEnabled = YES;
    [imageView addGestureRecognizer:longGnizer];
    [self.view addSubview:imageView];
}

- (void)longGo:(UILongPressGestureRecognizer *)aGer{
    if(aGer.state==UIGestureRecognizerStateBegan) {
       NSLog(@"%s",__func__);
    }
}

这是代码,但是func longGo永远不会工作,为什么?当我使用[self.view addGestureRecognizer:longGnizer]时,它确实有用。

1 个答案:

答案 0 :(得分:7)

UIImageView默认情况下userInteractionEnabled设置为NO。您必须设置imageView.userInteractionEnabled = YES;