当用户在Map上删除pin时,会自动调用Delegate方法“didSelectAnnotationView”

时间:2012-10-22 12:30:35

标签: ios6

我正在开发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;
}

}

0 个答案:

没有答案