长按注释时,注释图像将被RedPushPin替换

时间:2012-02-14 11:20:47

标签: objective-c mkmapview mkannotationview

我创建了以下自定义注释:

-(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;
}

问题:当用户在任何注释图像(type1或type2)上按住2秒钟时,图像将被红色PushPin替换(iPhone MKPinAnnotationView的默认值)。

我想避免这种替代。我怎么能这样做?

2 个答案:

答案 0 :(得分:23)

声明并创建普通MKPinAnnotationView,而不是声明和创建MKAnnotationView

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

答案 1 :(得分:2)

使用didDeselectAnnotationViewdidSelectAnnotationView并按照以下方式重新选择图片: -

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