在editmode中如何在UITableViewCell上暂停/禁用UILongPressGestureRecognizer

时间:2012-03-22 08:21:37

标签: iphone uitableview uigesturerecognizer long-press

在tableview中,我在每个单元格上都有一个UILongPressGestureRecognizer,我这样添加:

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

现在我有以下问题我希望用户能够重新排列tableview中的单元格,所以我有一个按钮将tableView设置为EditMode,如下所示:

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

现在当用户试图拖动一个单元并且没有将它拖得足够远时,longPress会激活他的动作,这对用户来说非常烦人,导致另一个视图被推动。 当tableView在EditMode中时,如何暂停或禁用UILongPressGestureRecognizer

1 个答案:

答案 0 :(得分:5)

您应该为此方法实现UIGestureRecognizerDelegate委托:

gestureRecognizer:shouldReceiveTouch:

在方法中,检查您是否正在编辑表格,如果是,则返回NO。