我一直在尝试在UILongPressGestureRecognizer
子类中使用MKAnnotationView
。有趣的是,手势识别器仅在使用两个手指/触摸时触发。
什么阻止手势识别器只用一次触摸即可触发?
实施
UILongPressGestureRecognizer *pressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self
action:@selector(handleLongPress:)];
pressRecognizer.minimumPressDuration = 0.25;
pressRecognizer.numberOfTapsRequired = 0;
pressRecognizer.numberOfTouchesRequired = 1;
普通UIView
中的相同实现显示了一键操作的预期行为。然而,有可能使用touchesBegan:
和touchesEnded:
来做长按手势,我仍然很好奇这是什么原因。
答案 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];