Ios5 在iOS 5下不再调用UITapGestureRecognitizer的目标

Ios5 在iOS 5下不再调用UITapGestureRecognitizer的目标,ios5,uigesturerecognizer,uitapgesturerecognizer,Ios5,Uigesturerecognizer,Uitapgesturerecognizer,我已经使用uitappesturerecognizer很长一段时间了,以便在点击时注意并显示另一个视图。我正在初始化它,如下所示: _tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)]; _tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self

我已经使用
uitappesturerecognizer
很长一段时间了,以便在点击时注意并显示另一个视图。我正在初始化它,如下所示:

_tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)];
_tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)];
_tapGesture.numberOfTapsRequired = 1;
_tapGesture.numberOfTouchesRequired = 1;
_tapGesture.delegate = self;
[self addGestureRecognizer:_tapGesture];
在iOS 4.3中,这确实非常有效。在iOS 5中,
-showModalDetailView:
不再被调用

我想知道是否还有其他人也有这个问题

更新

我正在如下配置识别器:

_tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)];
_tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)];
_tapGesture.numberOfTapsRequired = 1;
_tapGesture.numberOfTouchesRequired = 1;
_tapGesture.delegate = self;
[self addGestureRecognizer:_tapGesture];
更新2

好了,现在有点奇怪了。一旦我通过注释禁用委托设置,代码就会再次开始工作。但是,仍在调用委托方法。但并非总是如此

单元格具有左对齐的标题和右对齐的详细信息文本。当您点击细节文本时,它会按预期工作:委托方法不会被调用,弹出窗口会出现。当您在其他地方点击该单元格时,将调用委托方法(
-gestureReceignizer:shouldReceiveTouch:
),并显示弹出框


我不太明白这里发生了什么。

尝试将numberoftouchsrequired和numberOfTapsRequired显式设置为1。
当然,您必须在视图实例上调用addGestureRecognizer。

现在我实现了所有三种委托方法(尽管它们是可选的),它可以工作了。只是返回默认值。谢谢,Dunkelstern和thomas。

您将识别器附加到哪里?在自定义
UITableViewCell
子类的
-(id)initWithStyle:reuseIdentifier:
中。我面临类似的问题。删除委托设置行修复了它,当时我意识到设置识别器的委托是一个愚蠢的错误,因为它没有带回调的自定义协议。添加一个目标和选择器就足够了。这让我想问你,你在回答中提到的三种委托方法是什么?Sid,我实现的方法是
UIgestureRecognitizerDelegate
中定义的方法。我需要
-手势识别器:shouldReceiveTouch:
来确定视图是否应该接收点击。我在上面使用了另一个视图,点击时不应该触发事件。哦,好的,谢谢!我正在寻找UITapGestureRecognitzerDelegate:)