Agregar gesto de toque simple y doble en la subvista de UITableViewCell

Tengo una UIImageView en UITableViewCell . Estoy tratando de agregar el gesto de un solo toque para verlo en tamaño completo y hacer doble gesto para que me guste. Aquí está mi código para eso:

  UITapGestureRecognizer *aSingleTapGesture = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(SingleTapGestureRecognizer:)] autorelease]; aSingleTapGesture.delegate = self; aSingleTapGesture.numberOfTapsRequinetworking = 1; [cell.imgProductImage addGestureRecognizer:aSingleTapGesture]; UITapGestureRecognizer *aDoubleTapGesture = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapGestureRecognizer:)] autorelease]; aDoubleTapGesture.delegate = self; aDoubleTapGesture.numberOfTapsRequinetworking = 2; [cell.imgProductImage addGestureRecognizer:aDoubleTapGesture]; 

Solo se denomina gesto de un solo toque y nunca se invoca el gesto de doble toque. Lo que solía require to fail en el gesto de un solo toque.

  [aSingleTapGesture requireGestureRecognizerToFail:aDoubleTapGesture]; 

Bueno, usando este código puedo llamar ambos gestos de toque simple y doble, pero el problema es el tableView:didSelectRowAtIndexPath: también se llama. No quiero llamar a didSelectRowAtIndexPath si se llaman mis gestos. Desde mi punto de vista, se llama porque el gesto de un solo toque está esperando un gesto de doble toque mientras se llama a ifSelectRowAtIndexPath.

Cualquier ayuda por favor

Puede usar el button UIB en lugar de UIImageView en la celda tableview. Use el siguiente código para get una o dos pulsaciones.

 //add target for your UITableViewCell's button [aBtnThumbObj addTarget:self action:@selector(btnThumbClickDouble:) forControlEvents:UIControlEventTouchDownRepeat]; [aBtnThumbObj addTarget:self action:@selector(btnThumbClickSingle:) forControlEvents:UIControlEventTouchUpInside]; -(void)btnThumbClickSingle:(UIButton*)sender { [self performSelector:@selector(singleTapOnButtonSelector:) withObject:sender afterDelay:0.2]; } -(void)btnThumbClickDouble:(UIButton*)sender { [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleTapOnButtonSelector:) object:sender]; //Your implementation for double tap } -(void)singleTapOnButtonSelector:(UIButton*)sender { //Your implementation for single tap } 

Puede configurar el estilo de selección para su celda como

 cell.selectionStyle = UITableViewCellSelectionStyleNone; 

Y simplemente no implemente su método -tableViewDidSelectRowAtIndexPath

Estas dos líneas de código funcionan para mí:

 tapGesture.cancelsTouchesInView = YES; tapGesture.delaysTouchesBegan = YES;