Как приостановить/отключить UILongPressGestureRecognizer в UITableViewCell в режиме редактирования

В табличном представлении у меня есть UILongPressGestureRecognizer в каждой ячейке, которую я добавляю следующим образом:

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] 
                                          initWithTarget:self 
                                          action:@selector(TableCellLongPressed:)];
longPress.minimumPressDuration = 0.5f;
[cell addGestureRecognizer:longPress];
[longPress release];

Теперь у меня есть следующая проблема: я хочу, чтобы пользователь мог изменить порядок ячеек в табличном представлении, поэтому у меня есть кнопка, которая устанавливает tableView в EditMode следующим образом:

[self.myTableView setEditing:!self.myTableView.editing animated:YES];

Теперь, когда пользователь пытается перетащить ячейку и не перетаскивает ее достаточно далеко, longPress запускает свое действие, которое очень раздражает пользователя, потому что другое представление выдвигается. Как я могу приостановить или отключить UILongPressGestureRecognizer, когда tableView находится в режиме редактирования?


person BObereder    schedule 22.03.2012    source источник


Ответы (1)


Вы должны реализовать делегат UIGestureRecognizerDelegate для этого метода:

жестРекогнизер: долженReceiveTouch:

В методе проверьте, редактируете ли вы таблицу, и верните NO, если да.

Тим

person tarmes    schedule 23.03.2012
comment
не знаю, как я мог пропустить этот метод. спасибо отлично работает. - person BObereder; 23.03.2012