为什么我不能让mapkit显示自定义注释图像?

时间:2010-06-22 06:14:10

标签: iphone annotations mapkit mkmapview

我认为使用我自己的自定义图钉进行注释非常容易。

但是我从来没有能够让它工作,我不知道为什么!

我只是在使用:

Annotation *anno = [[[Annotation alloc] init] autorelease];
        anno.coordinate = ridesMap.userLocation.location.coordinate;
        anno.title = @"Current Location";
        anno.subtitle = [NSString stringWithFormat:@"%f, %f", anno.coordinate.latitude, anno.coordinate.longitude];

        static NSString *defaultPinID = @"LocationIdentifier";
        MKPinAnnotationView *pinView = (MKPinAnnotationView *)[ridesMap dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        if (pinView == nil){
            pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:anno reuseIdentifier:defaultPinID] autorelease];
        }

        pinView.image = [UIImage imageNamed:@"custom_pin.png"];
        pinView.opaque = NO;
        pinView.canShowCallout = YES;
        pinView.draggable = NO;

        pinView.annotation = anno;
        NSLog(@"Adding current location annotation");

        return pinView;

我认为这应该有效,因为UIImage是它想要的,我的项目中也有custom_pin.png文件。

它从不使用我的图像,只是标准的红色图钉。我在这里做错了什么?

1 个答案:

答案 0 :(得分:9)

来自文档:

  

MKPinAnnotationView类提供了一个具体的注释视图,它显示了一个图钉图标,就像在地图应用程序中找到的一样。

换句话说,MK Pin AnnotationView将忽略图像属性并始终显示图钉。请改为使用常规MKAnnotationView