2011-09-03 5 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 *이 –

+0

감사를 recognizer' '에 그 변경'넣을 위치를 확인할 "타입 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를했고, 난 그냥 방향 again.It의 easy.Right을 설정해야합니다 계세요하지만 나는 싶어 SwipeGestureRecognizerDirectionRigth을 사용하여 재설정?

관련 문제