Objective c 长按批注时,批注图像将替换为红色图钉

Objective c 长按批注时,批注图像将替换为红色图钉,objective-c,mkmapview,mkannotationview,Objective C,Mkmapview,Mkannotationview,我已使用以下内容创建了自定义注释: -(MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation { MKPinAnnotationView *view = nil; if (annotation != mapView.userLocation) { view = (MKPinAnnotationView *)[m

我已使用以下内容创建了自定义注释:

-(MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{
    MKPinAnnotationView *view = nil;
    if (annotation != mapView.userLocation)
    {
        view = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"myAnnotationIdentifier"];
        if (!view) 
            view = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"myAnnotationIdentifier"];

        if (((CustomAnnotation *)annotation).annotationType == 1)
        {
            view.image = [UIImage imageNamed:@"type1.png"];
            view.rightCalloutAccessoryView = nil;
            view.canShowCallout = YES;
        }
        else
        {
            view.image = [UIImage imageNamed:@"type2.png"];
            view.rightCalloutAccessoryView = nil;
            view.canShowCallout = YES;
        }
    }
return view;
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释
{
MKPinAnnotationView*视图=nil;
if(注释!=mapView.userLocation)
{
视图=(MKPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:@“myAnnotationIdentifier”];
如果(!视图)
视图=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:@“myAnnotationIdentifier”];
如果(((CustomAnnotation*)annotation.annotationType==1)
{
view.image=[UIImage ImageName:@“type1.png”];
view.rightCalloutAccessoryView=nil;
view.canShowCallout=是;
}
其他的
{
view.image=[UIImage ImageName:@“type2.png”];
view.rightCalloutAccessoryView=nil;
view.canShowCallout=是;
}
}
返回视图;
}
问题:当用户在任何批注图像(type1或type2)上按住2秒时,图像将被红色图钉替换(iPhone MKPinAnnotationView的默认设置)


我想避免这种替换。如何执行此操作?

与其声明和创建
MKPinAnnotationView
,不如声明和创建一个普通的
MKAnnotationView


MKPinAnnotationView
喜欢默认为红色pin,这就是它的用途。

使用
did取消AnnotationView
did选择AnnotationView
,然后按照您所做的操作重新选择图像:-

view.image = [UIImage imageNamed:@"type2.png"];

我还想知道,我是否可以将红色图钉放在MKAnnotationView上?因为您将自己的图像用于注释视图,所以应该使用MKAnnotationView。但是,是的,您可以有一些注释是MKAnnotationView和一些注释是MKPinAnnotationView(不要在这些注释上设置图像)。为每个类使用单独的重用id。