3
我做以下,並始終得到綠色圖釘:Mapkit腳色不改變
pin.pinColor = MKPinAnnotationColorRed;
[self.mapView addAnnotation:pin];
[pin release];
針的類型是「NSObject的」的。所有的針腳都是綠色的。我應該以不同的方式做嗎?
我做以下,並始終得到綠色圖釘:Mapkit腳色不改變
pin.pinColor = MKPinAnnotationColorRed;
[self.mapView addAnnotation:pin];
[pin release];
針的類型是「NSObject的」的。所有的針腳都是綠色的。我應該以不同的方式做嗎?
確保您的引腳類實現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;
}
謝謝。這看起來類似於tableview的出隊。我應該首先在newAnnotion上檢查null,如果它已經存在,則返回實例? – 4thSpace 2010-03-12 01:46:39
是的,這就是文檔的建議,雖然我的目的,我沒有打擾。檢查viewForAnnotation的鏈接。它提到了dequeueReusableAnnotationViewWithIdentifier方法。 – DyingCactus 2010-03-12 02:33:55
你絕對應該,因爲你可以有很多相同的註釋。我還建議您檢查提供的註釋類型,例如,如果tit是MKUserLocation註釋,那麼您可以返回nil。 – 2012-03-22 17:48:10