À L'Aide De UITapGestureRecognizer

Nouveau à l'iPhone dev. J'ai une vue qui contient un UIScrollView qui contient une UIImageView. J'ai ajouté une (double) appuyez sur le geste de reconnaissance sur l'affichage de l'image qui en fait une boîte d'alerte s'ouvrir. Pour quelque raison, et je suis sûr que je suis juste en retard, il ouvre 3 fois.

Voici mon code:

- (void)viewDidLoad {

    scrollView.delegate = self;

    UIImage* image = imageView.image;
    imageView.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
    scrollView.contentSize = image.size;

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
    tapGesture.numberOfTapsRequired = 2;
    [imageView addGestureRecognizer:tapGesture];
    [tapGesture release];

    NSLog(@"LOADED");

    [super viewDidLoad];
}

-(IBAction) handleTapGesture:(UIGestureRecognizer *) sender {
    CGPoint tapPoint = [sender locationInView:imageView];
    int tapX = (int) tapPoint.x;
    int tapY = (int) tapPoint.y;
    NSLog(@"TAPPED X:%d Y:%d", tapX, tapY);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello" message:@"How are you?" delegate:nil cancelButtonTitle:@"I'm awesome." otherButtonTitles:nil];
    [alert show];
    [alert release];
}

J'ai juste commencé à l'iPhone dev il y a quelques jours. Ce problème sorte de me rappelle de l'événement bouillonnement de questions que j'ai traitées en javascript. Des idées?

Oh, et il me semble qu'il est intéressant de noter que le NSLog ne se produit pas tous les trois fois.

OriginalL'auteur tybro0103 | 2010-10-22