2010-03-11 57 views
3

我做以下,並始終得到綠色圖釘:Mapkit腳色不改變

pin.pinColor = MKPinAnnotationColorRed; 
     [self.mapView addAnnotation:pin]; 
     [pin release]; 

針的類型是「NSObject的」的。所有的針腳都是綠色的。我應該以不同的方式做嗎?

回答

7

確保您的引腳類實現MKAnnotation協議,我相信要獲得非標準的引腳顏色,您必須實施viewForAnnotation方法。

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation 
{ 
    MKPinAnnotationView *newAnnotation = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"redpin"]; 
    newAnnotation.pinColor = MKPinAnnotationColorRed; 
    newAnnotation.animatesDrop = YES; 
    newAnnotation.canShowCallout = YES; 
    return newAnnotation; 
} 
+0

謝謝。這看起來類似於tableview的出隊。我應該首先在newAnnotion上檢查null,如果它已經存在,則返回實例? – 4thSpace 2010-03-12 01:46:39

+0

是的,這就是文檔的建議,雖然我的目的,我沒有打擾。檢查viewForAnnotation的鏈接。它提到了dequeueReusableAnnotationViewWithIdentifier方法。 – DyingCactus 2010-03-12 02:33:55

+0

你絕對應該,因爲你可以有很多相同的註釋。我還建議您檢查提供的註釋類型,例如,如果tit是MKUserLocation註釋,那麼您可以返回nil。 – 2012-03-22 17:48:10