我试图通过为每个多边形添加手势识别器来制作一些多边形(MKOverlayViews)。
我有一个包含KMLParsers的NSArray(来自KMLViewer示例代码)。
-(MKOverlayView*)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay{
for (NSString *key in kmls) {
KMLParser *kml2=[kmls objectForKey:key];
MKOverlayView *oView;
if ( (oView = [kml2 viewForOverlay:overlay]) ) {
if (layerNumber == 8) {
NSLog(@"8");
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(showZoneText:)];
tap.numberOfTapsRequired = 1;
tap.numberOfTouchesRequired = 1;
[oView addGestureRecognizer:tap];
[tap release];
}
return oView;
}
}
return nil;
}
此代码记录8,因此执行“if”块,并显示层号8。
但是,当我点击多边形时,“showZoneText”方法永远不会被触发(该方法中的NSLog永远不会在控制台中显示)。
-(void)showZoneText:(UITapGestureRecognizer*)recognizer{
NSLog(@"show");
}
对此有何帮助?
感谢,
-G。