2011-09-03 10 views
5

Tengo un UITableView. He agregado a esta tabla un UIGestureRecognizer que busca un deslizamiento en una celda y habilita la edición en esa tabla si detecta un deslizamiento. Cuando deslizo hacia la derecha, de hecho habilita la edición en la tabla. Sin embargo, cuando deslizo el dedo hacia la izquierda, aparece el botón de eliminación rojo predeterminado en el lado derecho de la celda. ¿Cómo puedo desactivar este comportamiento predeterminado y hacerlo de manera que si deslizo el dedo hacia la izquierda O hacia la derecha, obtengo la edición de alguna manera?Anular gesto de deslizamiento en UITableView

- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer { 
    foldersTable.editing=YES; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIGestureRecognizer *recognizer; 
    recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)]; 
    [foldersTable addGestureRecognizer:recognizer]; 
    [recognizer release]; 

} 

Respuesta

3

sólo devuelve UITableViewCellEditingStyleNone en su método tableView:editingStyleForRowAtIndexPath:.

+0

Esto es lo que estaba buscando, Gracias :) – bitmoe

3

Hay una propiedad de dirección en UISwipeGestureRecognizer. Se puede establecer que a los dos golpes de derecha e izquierda:

recognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft; 
+0

me sale "dirección no encontrada de tipo UIGestureRecognizer" – bitmoe

+1

Ves donde pones 'UIGestureRecognizer * recognizer' ... cambiar eso a' UISwipeGestureRecognizer * recognizer' –

+0

Gracias, funciona ahora – bitmoe

0

Estoy utilizando otra forma de resolver este problema.

NSMutableArray *tableViewGestures = [[NSMutableArray alloc]initWithArray:[self.tableView gestureRecognizers]]; 
[[tableViewGestures objectAtIndex:2] setDirection:UISwipeGestureRecognizerDirectionLeft]; 
NSLog(@"directions %@" , [tableViewGestures objectAtIndex:2]); 

NSArray *newTableViewGestures = [[NSArray alloc]initWithArray:tableViewGestures]; 
[self.tableView setGestureRecognizers:newTableViewGestures]; 

me dieron el tableViewGestures NSArray y restablecer it.If Quiero utilizar SwipeGestureRecognizerDirectionRigth, sólo hay que ajustar la dirección de again.It easy.Right?

Cuestiones relacionadas