2013-04-19 3 views
0

я реализовал коромысло к удалить опцию в моем представлении таблицы, добавив следующие два метода:Как отключить прокрутку в определенном направлении на UITableViewCell в iOS?

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return YES; 
} 



- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
     //Action to delete 
    } 
} 

Это работает хорошо, и всякий раз, когда я красть на клетки (как слева-направо и право- налево), кнопка удаления красного цвета отображается хорошо.

Но я хочу показать кнопку удаления только в том случае, если пользователь перебирает направление справа налево. Когда пользователь щелкает влево-вправо, я хочу выполнить другие действия. Можно ли здесь найти направление?

+0

Возможный дубликат [UITableview разрешает удалять только в одном направлении] (http://stackoverflow.com/questions/13790033/uitableview-only-allow-swipe-to-delete-in-one-direction) – nschum

ответ

2

Просто добавьте распознаватель жестов к указателю таблицы в направлении, которое вы хотите игнорировать.

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(emptyMethod:)]; 
swipe.direction = UISwipeGestureRecognizerDirectionLeft; 
[self.tableView addGestureRecognizer:swipe]; 

Затем реализовать метод emptyMethod .. этот метод ничего не сделает.

- (void)emptyMethod {} 

Каждый раз, когда вы прокручиваете влево, пустой метод будет называться и ничего не делает.

+0

Thank вы за свой ответ, и он отлично работает для меня. Единственное, для моего требования, направление движения - правая сторона. Поэтому я изменил UISwipeGestureRecognizerDirectionLeft в UISwipeGestureRecognizerDirectionRight в приведенном выше коде, и его работы очень хорошо. У меня есть еще несколько сомнений относительно этого. - Могу ли я изменить размер и цвет этой кнопки по умолчанию «Удалить»? - Как узнать, доступна ли кнопка «Удалить» или нет? – Confused

+0

Я сомневаюсь, что вы можете изменить кнопку, но я не знаю .., чтобы узнать, видима ли кнопка или нет, вы можете проверить, находится ли ваш UITableView в режиме редактирования. BOOL visible = self.tableView.editing; – Marc