iPhone – Detecta toques en la subvista de UITableViewCell

Estoy llenando un UITableView con celdas que contienen una subview UIImageView. Me gustaría detectar toques en la vista de la image, por lo que también estoy agregando un reconocimiento de gestos. Sin embargo, no se llama nada. Aquí está mi código:

UIImageView *delete = [[UIImageView alloc] initWithFrame:CGRectMake(1.0, 8.0, 33.0, 33.0)]; delete.image = [UIImage imageNamed:@"Delete.png"]; delete.userInteractionEnabled = YES; delete.contentMode = UIViewContentModeCenter; UIGestureRecognizer *gesture = [[UIGestureRecognizer alloc] initWithTarget:self action:@selector(deleteTapped)]; gesture.delegate = self; [delete addGestureRecognizer:gesture]; [self.cellView addSubview:delete]; 

Nota: técnicamente estoy agregando la vista de la image a un contenedor que luego se agrega a la propia celda, por lo tanto [self.cellView addSubview:delete] . Pero he tenido los mismos resultados añadiendo directamente la vista de la image a la celda.

De acuerdo con esta respuesta en una publicación similar, se trata de un error conocido en iOS 5.0; la solución es anular un método de delegado para forzar el reconocimiento de gestos a comenzar:

La solución es anular -gestureRecognizerShouldBegin: en el delegado del gestor de reconocimiento y devolver YES. Este error debería corregirse en una versión futura de iOS 5.x. Esto solo es seguro siempre y cuando no esté utilizando las nuevas API copy / peg UITableViewCell.

He intentado esto, pero el método de delegado nunca se llama. Establecí la propiedad de delegate (ver arriba) e implementé <UIGestureRecognizerDelegate> siguiente manera:

 - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { NSLog(@"gesture delegate method called"); return YES; } 

¿Alguien tiene una idea de por qué esto todavía no estaría funcionando? O quizás, ¿cuál es el estado de este error en iOS 5.1?

intente devolver SÍ para este delegado methode - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;

y si desea detectar la acción de toque, utilice UITapGestureRecognizer