Захват событий жестов в MKOverlayView с помощью UIGestureRecognizer - PullRequest
1 голос
/ 03 марта 2011

Я пытаюсь перехватить события в подклассе MKOverlayView с помощью UIGestureRecognizer.Однако селектор никогда не будет уволен.Есть идеи?

интерфейс:

#import <MapKit/MapKit.h>

@interface XYOverlayView : MKCircleView {}
-(void) viewTapped:(UIGestureRecognizer *)gestureRecognizer;
@end

imp:

@implementation XYOverlayView

- (id)initWithOverlay:(id <MKOverlay>)overlay
{
    if(self = [super initWithOverlay:overlay])
    {
        self.userInteractionEnabled = TRUE;
        self.multipleTouchEnabled = TRUE;

        UITapGestureRecognizer *tapRecogniser = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];
        [self addGestureRecognizer:tapRecogniser];
        [tapRecogniser release];
    }
    return self;
}

-(void) viewTapped:(UIGestureRecognizer *)gestureRecognizer
{
    NSLog(@"XYOverlayView tapped"); 
}
@end

Ответы [ 4 ]

0 голосов
/ 26 июня 2012

Я думаю, что мой ответ здесь может быть решением: MKOverlayView и касается

0 голосов
/ 04 марта 2011

Обязательно укажите numberOfTapsRequired и numberOfTouchesRequired, в противном случае распознаватель жестов не знает, что принимать в качестве «касания».

tapRecogniser.numberOfTapsRequired = 1;
tapRecogniser.numberOfTouchesRequired = 1;
0 голосов
/ 09 марта 2011

Не заставил это работать.Переключен на пользовательский MKAnnotationView для захвата жестов.Это также имеет то преимущество, что область, которую можно коснуться в окне, остается того же размера.

0 голосов
/ 04 марта 2011

вы забыли реализовать UIGestureRecognizerDelegate в вашем интерфейсе, и вам нужно импортировать UIKit
#import <UIKit/UIKit.h><br> @interface XYOverlayView : MKCircleView <UIGestureRecognizerDelegate>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...