UITapGestureRecognizer的目标不再在iOS 5下调用

时间:2011-10-25 08:22:47

标签: ios5 uigesturerecognizer uitapgesturerecognizer

我已经使用UITapGestureRecognizer很长一段时间了,当发生点击时会注意到并显示另一个视图。我正在这样初始化它:

_tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showModalDetailView:)];

在iOS 4.3中,它确实运行良好。在iOS 5中,-showModalDetailView:不再被调用。

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

更新

我正在配置识别器:

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

更新2

好的,现在变得奇怪了。一旦我通过注释它来禁用委托设置,代码就会再次开始工作。但是,委托方法仍在调用。但不总是。

单元格具有左对齐标题和右对齐详细文本。当您点击详细文本时,它按预期工作:不会调用委托方法并显示弹出窗口。当你在其他地方点击单元格时,会调用委托方法(在这种情况下为-gestureRecognizer:shouldReceiveTouch:)并显示弹出窗口。

我不太清楚这里发生了什么。

2 个答案:

答案 0 :(得分:3)

现在我实现了所有三个委托方法(虽然它们是可选的)但它可以工作。只需返回默认值。谢谢,Dunkelstern和托马斯。

答案 1 :(得分:0)

尝试明确地将numberOfTouchesRequired和numberOfTapsRequired设置为1。 当然,您必须在View实例上调用addGestureRecognizer。