2011-09-03 120 views
5

我有一個UITableView。我在此表中添加了一個UIGestureRecognizer,用於查找單元格上的滑動,並在該表上檢測到滑動時在該表上進行編輯。當我向右滑動時,確實可以在桌面上進行編輯。但是,當我向左滑動時,單元格右側會出現默認的紅色刪除按鈕。我怎樣才能禁用這種默認行爲,並使其如此,如果我向左或向右滑動,我會在任一方向上進行編輯?覆蓋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]; 

} 

回答

3

tableView:editingStyleForRowAtIndexPath:方法只返回UITableViewCellEditingStyleNone

+0

這就是我一直在尋找,謝謝 :) – bitmoe

3

UISwipeGestureRecognizer有一個方向屬性。您可以設置到右側和左側刷卡:

recognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft; 
+0

我得到 – bitmoe

+1

你看,你把'UIGestureRecognizer * recognizer' ...修改成'UISwipeGestureRecognizer * recognizer' –

+0

由於「找不到類型UIGestureRecognizer的方向」,現在的工作 – bitmoe

0

我正在使用另一種方式來解決這個問題。

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]; 

我得到了tableViewGestures的NSArray和復位它。如果我想使用SwipeGestureRecognizerDirectionRigth,我只需要設定的方向again.It的easy.Right?