2016-01-28 46 views
0

這是一個非常簡單的問題,我想我可以做這樣的事情來使自定義圖像顯示出來而不是引腳,但它不起作用。任何幫助?謝謝!MKMapView的自定義註解視圖

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

} 
+0

檢查此問題http://stackoverflow.com/questions/9814988/mkmapview-instead-of-annotation-pin-a-custom-view – kb920

回答

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; 
} 
+0

它看起來會很好,但不適合我......奇怪 – Echizzle

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存在。

相關問題