Iphone 在自定义MKAnnotationView中使用UILongPressGestureRecognitor时出现问题
在MKAnnotationView的自定义子类中使用UILongPressGestureRecognitor时遇到问题。回调只会间歇性地触发。如果我缩短minimumPressDuration,它会更频繁地触发。minimumPressDuration值为0.1时,它每次都会激发。值为0.4时,无论我将手指放在它上多长时间,它都不会开火。在0.2时,它是命中或未命中 如果我使用轻触手势(如下所示),效果很好。我在其他视图上使用LongPress手势,效果很好。我只是在MKAnnotationView上遇到了这个问题,所以我想知道annotationview上的一些其他内部事件回调是否会产生干扰(callout等) 我在iOS4(sim卡和手机)和3.2(sim卡,没有设备)上看到了这个问题 以下是我如何创建手势识别器:Iphone 在自定义MKAnnotationView中使用UILongPressGestureRecognitor时出现问题,iphone,annotations,android-mapview,gesture,Iphone,Annotations,Android Mapview,Gesture,在MKAnnotationView的自定义子类中使用UILongPressGestureRecognitor时遇到问题。回调只会间歇性地触发。如果我缩短minimumPressDuration,它会更频繁地触发。minimumPressDuration值为0.1时,它每次都会激发。值为0.4时,无论我将手指放在它上多长时间,它都不会开火。在0.2时,它是命中或未命中 如果我使用轻触手势(如下所示),效果很好。我在其他视图上使用LongPress手势,效果很好。我只是在MKAnnotationVi
#define USE_LONG_PRESS 1
#define USE_TAP 0
#if USE_LONG_PRESS
UILongPressGestureRecognizer *longPressGR =
[[UILongPressGestureRecognizer alloc] initWithTarget:self
action:@selector(handleLongPress:)];
longPressGR.minimumPressDuration = 0.2;
[self addGestureRecognizer:longPressGR];
[longPressGR release];
#endif
#if USE_TAP
UITapGestureRecognizer *tapGR =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleTap:)];
[self addGestureRecognizer:tapGR];
[tapGR release];
#endif
此类中的回调方法定义如下:
- (void)handleLongPress:(UIGestureRecognizer *)gestureRecognizer {
NSLog(@"LONG PRESS");
}
- (void)handleTap:(UIGestureRecognizer *)gestureRecognizer {
NSLog(@"TAP");
}
有谁知道为什么会发生这种情况 据我所知,3.2和iOS 4中的标记已经附加了一个长按手势来处理标记拖动。这会干扰你的长按手势识别器吗?也许这就是为什么更短的持续时间有效;它在内置长按识别器能够识别之前捕捉到手势
- 这只是一个猜测*
- 这只是一个猜测*