我正在 iOS6 中开发一个应用程序。我正在使用苹果的地图。我必须在用户点击的地图上放置大头针。我通过在地图上使用 UITapGestureRecognizer 来做到这一点。但问题是,当用户点击放下 pin 时,Map Delegate 方法“didSelectAnnotationView”也会在 pin drop 后自动调用。我也尝试过使用 UILongPressGestureRecognizer 但结果相同。这不会发生在 iOS 5 中的 Google Maps 装置中。在 iOS 5 中它运行良好。我正在对此进行研究,但无法得到任何结果。请你告诉我:
有什么办法可以处理这个。OR Apple Map 提供了动态放置图钉的功能。
谢谢。
以下我写的代码:
- (IBAction)singleTapGestureOccur:(UITapGestureRecognizer *)sender {
CGPoint touchPoint = [sender locationInView:_mapView_View];
CLLocationCoordinate2D cord = [_mapView_View convertPoint:touchPoint toCoordinateFromView:_mapView_View];
MapAnnotation *annotation = [[MapAnnotation alloc] initWithCordinate:cord];
[_mapView_View addAnnotation:annotation];
}
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{
NSLog(@"DidSelectAnnotation");
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) {
if ([[touch.view class] isSubclassOfClass:[MKPinAnnotationView class]]) {
return NO;
}else {
return YES;
}
}else {
return YES;
}
}