Adjunto una UISwipeGestureRecognizer
a un UITableViewCell
en el método cellForRowAtIndexPath:
así:UIGestureRecognizer y emisión UITableViewCell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipe:)];
gesture.direction = UISwipeGestureRecognizerDirectionRight;
[cell.contentView addGestureRecognizer:gesture];
[gesture release];
}
return cell;
}
Sin embargo, el método didSwipe
está consiguiendo siempre llama dos veces en el golpe exitoso. Al principio pensé que esto era porque el gesto comienza y termina, pero si me conecto a cabo el propio gestureRecognizer, ambos se encuentran en el estado "Finalizada":
-(void)didSwipe:(UIGestureRecognizer *)gestureRecognizer {
NSLog(@"did swipe called %@", gestureRecognizer);
}
Consola:
2011-01-05 12:57:43.478 App[20752:207] did swipe called <UISwipeGestureRecognizer: 0x5982fa0; state = Ended; view = <UITableViewCellContentView 0x5982c30>; target= <(action=didSwipe:, target=<RootViewController 0x5e3e080>)>; direction = right>
2011-01-05 12:57:43.480 App[20752:207] did swipe called <UISwipeGestureRecognizer: 0x5982fa0; state = Ended; view = <UITableViewCellContentView 0x5982c30>; target= <(action=didSwipe:, target=<RootViewController 0x5e3e080>)>; direction = right>
Realmente realmente no sé por qué Traté obviamente de verificar el estado final, pero eso no es de ayuda, ya que ambos entran como "Terminado" de todos modos ... ¿Alguna idea?
Gracias! ¡Eso evitó que disparara dos veces! :) – mootymoots
Gracias, esto ayudó, pero estoy viendo algo extraño: después de deslizar, necesito presionar dos veces si quiero seleccionar la fila. La primera vez no hace nada, y las segundas llamadas didSelectRow ... ¿Alguien ha visto esto? –
@OdedBenDov Creo que es causado por el reconocimiento de gestos, tuve el comportamiento extraño para la selección de celda de vista de tabla cuando agregué el reconocedor de toques y olvidé eliminar en el método de edición final del campo de texto (subvista de la celda de vista de tabla), ser esto puede actuar como una pista para resolver su problema, más detalles [aquí] (http://stackoverflow.com/questions/9939509/strange-behavior-did-select-row-touch-not-responding-for-uitableviewcell) –