Ios UILongPressGestureRecognizer不工作,但将其替换为UIAPTGestureRecognizer可以正常工作。为什么?

Ios UILongPressGestureRecognizer不工作,但将其替换为UIAPTGestureRecognizer可以正常工作。为什么?,ios,ipad,uigesturerecognizer,Ios,Ipad,Uigesturerecognizer,我有一个ui图像视图,附带了ui长按手势识别器,无论我如何配置手势识别器,它似乎都不会检测到长按手势。但是,如果我将它换成一个uitagesturerecognizer,,它就可以正常工作了。可能发生了什么 这就是我如何配置我的UILongPressGestureRecognitor: UIImageView* cellView = (UIImageView*)[view viewWithTag:5]; UILongPressGestureRecognizer* longPressGesture

我有一个
ui图像视图
,附带了
ui长按手势识别器
,无论我如何配置手势识别器,它似乎都不会检测到长按手势。但是,如果我将它换成一个
uitagesturerecognizer
,它就可以正常工作了。可能发生了什么

这就是我如何配置我的
UILongPressGestureRecognitor

UIImageView* cellView = (UIImageView*)[view viewWithTag:5];
UILongPressGestureRecognizer* longPressGestureRec =
    [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(cellLongPress:)];
longPressGestureRec.numberOfTapsRequired = 1;
longPressGestureRec.numberOfTouchesRequired = 1;
longPressGestureRec.minimumPressDuration = 0.4;
[cellView addGestureRecognizer:longPressGestureRec];
[longPressGestureRec release];
这就是cellLongPress的外观:

-(void)cellLongPress:(UILongPressGestureRecognizer*)recognizer
{
    // This never gets called.
    NSLog(@"someone long pressed me");
}

很简单,对吧?不过,到目前为止还没有成功。有什么想法吗?

所需的
numberOfTapsRequired
设置为
1
,这意味着用户在开始长按之前必须轻按一次(手指向下、手指向上、手指向下0.4秒,手势可识别)

numberOfTapsRequired
更改为
0
(默认设置)

对于该属性,文档仅说明:

显示手势所需的视图点击次数 公认的

但是在
uilongpressurerecognizer.h
中的注释中,它说:

按下按钮前所需的完全轻触次数,以显示手势 认可


对UITableView的每个UIImageView执行“alloc”是否有问题?我看到cellView将viewwithTag用于预分配的实例。每个UILongPressGestureRecognitor是否也需要为UITableView的每个单元格预先分配?不,这不是问题所在。这个问题在将近3年前就得到了解答。。。请看下面接受的答案。实际上它默认为1,因此您的答案仍然有效,并且比您想象的更重要。请看Joe是正确的,对于taps,默认值是1(尽管他指的是下面的链接)。然而,安娜的回答仍然很有洞察力。tap=1和tap=0之间存在细微差异。轻拍更像是一种有力的姿态。当点击=0和触摸=1时,您可以将手指放在屏幕上,触发长按(人们可能会来此页面进行此操作)点击=1需要更有意的触摸。更新链接: