Question

I'm trying to add a UILongPressGestureRecognizer and a UITapGestureRecognizer to an IBOutletCollection of UIImageViews, but it's not working. Here's the code I'm using:

UILongPressGestureRecognizer *pressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(deleteImage:)];
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(selectImage:)];

pressRecognizer.delegate = self;
tapRecognizer.delegate = self;

for (UIImageView *imageView in myImageViewCollection)
{
    [imageView addGestureRecognizer:pressRecognizer];
    [imageView addGestureRecognizer:tapRecognizer];

    imageView.userInteractionEnabled = YES;
}

- (void)selectImage:(UITapGestureRecognizer *)sender
{
    NSLog(@"Select");
}

- (void)deleteImage:(UILongPressGestureRecognizer *)sender
{
    NSLog(@"Delete");
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

I've conformed to the UIGestureRecognizerDelegate. What am I doing wrong?

Was it helpful?

Solution

Refer to this question. Sounds like the same issue. I recreated your problem and the gesture recognizers are only bound to the last view.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top