我正在开发iOS6中的应用程序。我正在使用Apple的地图。其中我必须在地图上用户点击的drop pin。我是通过在Map上使用UITapGestureRecognizer来做到这一点的。但问题是当用户点击放下引脚时,引脚丢弃后也会自动调用Map Delegate方法“didSelectAnnotationView”。我也试过使用UILongPressGestureRecognizer但结果相同。 iOS 5中的谷歌地图意味着这种情况不会发生。在iOS 5中,它运行良好。我正在研究这个,但无法得到任何结果。请你告诉我:
有没有办法解决这个问题。或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;
}
}