我嘗試使用UIGestureRecognizer捕獲子類MKOverlayView上的事件。 但是選擇器永遠不會被觸發。有任何想法嗎?使用UIGestureRecognizer在MKOverlayView上捕獲手勢事件
接口:
#import <MapKit/MapKit.h>
@interface XYOverlayView : MKCircleView {}
-(void) viewTapped:(UIGestureRecognizer *)gestureRecognizer;
@end
小鬼:
@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
手勢識別不上覆蓋意見的工作,因爲MapKit專門阻止他們的工作。 'MKMapView'將所有覆蓋視圖放在類'MKOverlayContainerView'的容器圖層中,並且''[MKOverlayContainerView pointInside:withEvent:]'總是返回'NO'。這意味着觸摸永遠不會被視爲覆蓋視圖內,因此觸摸永遠不會觸及覆蓋視圖所附的手勢識別器。 –