MKAnnotationView上的UILongPressGestureRecognizer不适用于单点触控

时间:2011-11-05 15:06:32

标签: ios cocoa-touch mkmapview uigesturerecognizer mkannotationview

我一直在尝试在UILongPressGestureRecognizer子类中使用MKAnnotationView。有趣的是,手势识别器仅在使用两个手指/触摸时触发。

什么阻止手势识别器只用一次触摸即可触发?

实施

UILongPressGestureRecognizer *pressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self
                                                                                                      action:@selector(handleLongPress:)];
pressRecognizer.minimumPressDuration = 0.25;
pressRecognizer.numberOfTapsRequired = 0;
pressRecognizer.numberOfTouchesRequired = 1;

普通UIView中的相同实现显示了一键操作的预期行为。然而,有可能使用touchesBegan:touchesEnded:来做长按手势,我仍然很好奇这是什么原因。

1 个答案:

答案 0 :(得分:2)

你见过这个question吗?

使用我的UILongPressGestureRecognizer我禁用了AnnotationView并为其添加了GestureRecognizer:

[ann_view setEnabled:NO];
UILongPressGestureRecognizer* long_press = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAnnotationView:)];
long_press.minimumPressDuration = 1.5;
[ann_view addGestureRecognizer:long_press];
[long_press release];