2011-09-03 7 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

を働く 'UISwipeGestureRecognizer *にそれを変更...あなたは' UIGestureRecognizer * recognizer'を置く場所あなたが見 – bitmoe

3

UISwipeGestureRecognizerにdirectionプロパティがあります。あなたは、左右のスワイプの両方にそれを設定することができます。

recognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft; 
+0

私は、これは私が探していたものである – bitmoe

+1

「タイプUIGestureRecognizerの見つからない方向」を取得ありがとう:) –

+0

感謝をrecognizer'、それは今 – 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を持って、it.If Iのたい利用SwipeGestureRecognizerDirectionRigthをリセットし、私はちょうど方向again.Itのeasy.Rightを設定する必要がありますか?

関連する問題