繁体   English   中英

在自定义MKAnnotationView中使用UILongPressGestureRecognizer遇到麻烦

[英]Trouble using UILongPressGestureRecognizer in custom MKAnnotationView

在MKAnnotationView的自定义子类中使用UILongPressGestureRecognizer遇到麻烦。 回调仅间歇地触发。 如果我使minimumPressDuration变短,它会更频繁地触发。 最小PressDuration值为0.1时,它将每次触发。 值为0.4时,无论我将手指放在上面多长时间,它都不会触发。 值为0.2时命中或未命中。

如果我使用“点击”手势(如下所示),则效果很好。 我在其他视图上使用LongPress手势,它们工作正常。 我只是在MKAnnotationView上遇到了这个问题,所以我想知道AnnotationViews上的其他一些内部事件回调是否会干扰(调出等)。

我在iOS4(SIM卡和手机)和3.2(SIM卡,没有设备)上看到了此问题。

这是我创建手势识别器的方法:

#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");
}

任何iPhone专家都知道为什么会发生这种情况?

据我所知,3.2和iOS 4中的标记已经附加了长按手势以处理标记拖动。 难道这会干扰您的长按手势识别器? 也许这就是为什么工期较短的原因。 内置的长按识别器可以捕捉到手势。

  • 这只是一个猜测*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM