UITableViewCell con múltiples gestos: pulsación larga y toque

Como dice la pregunta, me gustaría implementar dos acciones diferentes para un toque y una pulsación prolongada en un UITableViewCell.

Creo que debo anular la selección de la fila en cada etapa y no poner ninguna function dentro de aquí:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:NO]; } 

Y luego agrega Gestos de toque desde el guión gráfico, pero Storyboard me da un error cuando arrastro acciones para prototipo de celdas. ¿Sugerencias?

testing esto –

En su método cellForRowAtIndexPath , puede agregar el gesto de toque y el gesto de pulsación prolongada por separado y luego implementarlos. Por esta didselect su function didselect no será requerida y no tendrá que deSelect nada.

 UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(cellTapped:)]; tapGestureRecognizer.numberOfTapsRequinetworking = 1; tapGestureRecognizer.numberOfTouchesRequinetworking = 1; cell.tag = indexPath.row; [cell addGestureRecognizer:tapGestureRecognizer]; UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; lpgr.minimumPressDuration = 1.0; //seconds [cell addGestureRecognizer:lpgr]; cell.selectionStyle = UITableViewCellSelectionStyleNone; 

Ahora,

 -(void)handleLongPress:(UILongPressGestureRecognizer *)longPress { // Your code here } -(void)cellTapped:(UITapGestureRecognizer*)tap { // Your code here } 

Puede manejar la acción de un solo toque con el método de UITableViewDelegate que publicó anteriormente,

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

para hacer un UILongPressGestureRecognizer en su UITableViewCell siga estas instrucciones .

Espero que ayude.