2011-09-03 13 views
5

Ho un UITableView. Ho aggiunto a questa tabella un UIGestureRecognizer che cerca lo scorrimento su una cella e abilita la modifica su tale tabella se rileva uno swipe. Quando scorro verso destra, effettivamente consente la modifica sul tavolo. Tuttavia, quando scorro a sinistra, viene visualizzato il pulsante di eliminazione rosso predefinito sul lato destro della cella. Come posso disattivare questo comportamento predefinito e farlo in modo che se faccio scorrere a sinistra O a destra, ottengo modifiche in entrambi i modi?Override swipe gesture su 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]; 

} 

risposta

3

Basta tornare UITableViewCellEditingStyleNone nel metodo tableView:editingStyleForRowAtIndexPath:.

+0

Questo è quello che stavo cercando, Grazie :) – bitmoe

3

C'è una proprietà di direzione su UISwipeGestureRecognizer. È possibile impostare che a entrambi i colpi a destra ea sinistra:

recognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft; 
+0

ottengo "direzione non trovato di tipo UIGestureRecognizer" – bitmoe

+1

Vedete dove si mette 'UIGestureRecognizer * recognizer' ... Cambiare che a' UISwipeGestureRecognizer * recognizer' –

+0

Grazie, funziona ora – bitmoe

0

Sto usando un altro modo per risolvere questo 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]; 

ho avuto la tableViewGestures NSArray e ripristinare it.If Voglio usare SwipeGestureRecognizerDirectionRigth, ho solo bisogno di impostare la direzione del again.It easy.Right?