簡體   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