0

Heres the code where im adding the gesture recognizers

    UIImage *img = [UIImage imageWithContentsOfFile:media.thumbnailPath];
    UIImageView *imageView = [[UIImageView alloc] init];  
    imageView.image = img;  
    imageView.contentMode = UIViewContentModeScaleToFill;
    imageView.backgroundColor =[UIColor blackColor];  

    //Add tap guesture
    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
    UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];

    [singleTap setNumberOfTapsRequired:1];
    [singleTap setDelegate:self];

    [doubleTap setNumberOfTapsRequired:2];
    [doubleTap setDelegate:self];

    [singleTap requireGestureRecognizerToFail:doubleTap];

    [imageView addGestureRecognizer:singleTap];
    [imageView addGestureRecognizer:doubleTap];
    [singleTap release];
    [doubleTap release];

and i have implemented the

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
     NSLog(@"Gesturing");
     return YES;
}

but the delegate method is not called when dealing with the singletap gesture but it works for doubletap gesture

4

2 に答える 2

3

Check out Simultaneous gesture recognizers in Iphone SDK

For most cases you don't need to:

setup a delegate
permit simultaneous gesture recognition (unless you want simultaneous swipes; not likely)

Setting Gesture Recognizers

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] 
                                     initWithTarget:self 
                                     action:@selector(handleSingleTapOnMainImageView:)];

[imageView addGestureRecognizer:singleTap];
[singleTap release];

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] 
                                     initWithTarget:self 
                                     action:@selector(handleDoubleTapOnMainImageView:)];
[doubleTap setNumberOfTapsRequired:2];
[singleTap requireGestureRecognizerToFail:doubleTap];
[imageView addGestureRecognizer:doubleTap];
[doubleTap release];

Method implementation

-(void)handleSingleTapOnMainImageView:(UIGestureRecognizer*)gestureView
{
NSLog(@"handleSingleTapOnMainImageView");
}

-(void)handleDoubleTapOnMainImageView:(UIGestureRecognizer*)gestureView
{
NSLog(@"handleDoubleTapOnMainImageView");
}
于 2012-05-21T15:41:18.000 に答える
-1

追加imageView.userInteractionEnabled = YES;はうまくいくでしょう!

于 2015-08-19T03:38:28.367 に答える