2010-06-22 64 views
1

我認爲使用我自己的自定義圖釘進行註釋會非常容易。爲什麼我無法使用mapkit顯示自定義註釋引腳圖像?

但我從來沒有能夠得到它的工作,我不知道爲什麼!

我只是用:

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文件。

它從來沒有使用我的形象,但只是標準的紅色別針。我在這裏做錯了什麼?

回答

9

從文檔:

的MKPinAnnotationView類提供顯示像在地圖應用程序中發現的那些的銷圖標具體註釋圖。

換句話說,MK Pin AnnotationView將忽略圖像屬性並始終顯示一個圖釘。改爲使用常規的MKAnnotationView

+0

是的!那就是訣竅。不知道我錯過了這個!謝謝。 – 2010-06-22 14:00:25

+0

這個答案爲我節省了很多時間。不幸的是,SIMULATOR有一個BUG,甚至很難使用MKPinAnnotationView,模擬器向我展示了我設置的正確圖像,只有設備沒有向我顯示圖像。我開車瘋了,直到我發現這篇文章。再次感謝。並且要小心,模擬器是你最大的敵人! :-) – 2014-06-25 09:17:51