MKPinAnnotationView无法设置自定义图像

时间:2011-07-24 16:48:48

标签: cocoa-touch ios4 mkpinannotationview mapkit

我有一个MKPinAnnotationView,在我的viewForAnnotation方法中,我执行以下操作:

customPinView.image = [UIImage imageNamed:@"blah.png"];

我已将blah.png添加到我的资源中(通过拖动文件)

但我仍然看到股票图钉而不是我的图像。难道我做错了什么?这是完整的代码:

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
{
    static NSString *AnnotationViewID = @"annotationViewID";

    MKAnnotationView *annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];

    if (annotationView == nil)
    {
        annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID] autorelease];
    }

    annotationView.image = [UIImage imageNamed:@"blah.png"];
    annotationView.annotation = annotation;

    return annotationView;
}

1 个答案:

答案 0 :(得分:1)

要使用自定义图片获取标注,在viewForAnnotation委托方法中,您可以为图片设置leftCalloutAccessoryViewrightCalloutAccessoryView(尽管右边的图片通常是用于披露按钮):

annotationView.canShowCallout = YES;
UIImage *img = [UIImage imageNamed:@"something.png"];
annotationView.leftCalloutAccessoryView = 
    [[[UIImageView alloc] initWithImage:img] autorelease];