MKMapView的自定义注释视图

时间:2016-01-28 20:51:04

标签: ios objective-c mkmapview mkannotationview

这是一个非常简单的问题,我想我可以做这样的事情来使自定义图像显示而不是引脚但它不起作用。有帮助吗?谢谢!

  - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {


self.pinAnnotation = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"personAnnotation"];

//    self.pinAnnotation.pinColor = self.pinColor;

self.pinAnnotation.image = [UIImage imageNamed:@"myImage"];

self.pinAnnotation.animatesDrop = YES;

return self.pinAnnotation;

 }

2 个答案:

答案 0 :(得分:0)

我刚才发现这个

  - (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:@"location.png"];
    annotationView.annotation = annotation;

    return annotationView;
}

答案 1 :(得分:0)

要将自己的图片用于注释视图,您应该创建MKAnnotationView而不是MKPinAnnotationView

请尝试以下代码:

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation 
{
    MKAnnotationView *pinView = nil; 
    if(annotation != mapView.userLocation) 
    {
        static NSString *AnnotationViewID = @"annotationViewID";
        pinView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];
        if ( pinView == nil ) 
            pinView = [[MKAnnotationView alloc]
                                         initWithAnnotation:annotation reuseIdentifier:AnnotationViewID];

        //pinView.pinColor = MKPinAnnotationColorGreen; 
        pinView.canShowCallout = YES;
        //pinView.animatesDrop = YES;
        pinView.image = [UIImage imageNamed:@"myImage.jpg"];
    } 
    else {
        //user location
    }
    return pinView;
}

animatesDrop也被注释掉,因为该属性仅存在于MKPinAnnotationView