Переопределить жест смахивания на UITableView - PullRequest
5 голосов
/ 04 сентября 2011

У меня есть UITableView.Я добавил в эту таблицу UIGestureRecognizer, который ищет пролистывание в ячейке и позволяет редактировать эту таблицу, если он обнаруживает пролистывание.Когда я проведу пальцем вправо, он действительно разрешит редактирование таблицы.Однако, когда я проведу пальцем влево, на правой стороне ячейки появится красная кнопка удаления по умолчанию.Как я могу отключить это поведение по умолчанию и сделать так, чтобы, если я проведу пальцем влево или вправо, я получу редактирование в любом случае?

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

3 голосов
/ 04 сентября 2011

Просто верните UITableViewCellEditingStyleNone в вашем tableView:editingStyleForRowAtIndexPath: методе.

3 голосов
/ 04 сентября 2011

В UISwipeGestureRecognizer есть свойство направления.Вы можете установить это как вправо, так и влево:

recognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft;
0 голосов
/ 11 июля 2013

Я использую другой способ решения этой проблемы.

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, мне просто нужно снова установить направление. Это легко. Правильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...