2012-02-14 52 views
8

我已創建自定義註解長按與以下:註釋圖像被RedPushPin更換時上註釋

-(MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{ 
    MKPinAnnotationView *view = nil; 
    if (annotation != mapView.userLocation) 
    { 
     view = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"myAnnotationIdentifier"]; 
     if (!view) 
      view = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"myAnnotationIdentifier"]; 

     if (((CustomAnnotation *)annotation).annotationType == 1) 
     { 
      view.image = [UIImage imageNamed:@"type1.png"]; 
      view.rightCalloutAccessoryView = nil; 
      view.canShowCallout = YES; 
     } 
     else 
     { 
      view.image = [UIImage imageNamed:@"type2.png"]; 
      view.rightCalloutAccessoryView = nil; 
      view.canShowCallout = YES; 
     } 
    } 
return view; 
} 

問題:當用戶按下並保持在任何註釋圖像2秒(TYPE1或2型) ,圖像被紅色PushPin(默認爲iPhone MKPinAnnotationView)取代。

我想避免這種替換。我該怎麼做?

回答

23

而不是宣告和創建MKPinAnnotationView,聲明並創建一個純MKAnnotationView

MKPinAnnotationView喜歡默認使用它的紅色針腳。

+0

我也想知道,我是否可以把RedPushPin上MKAnnotationView與否? – Krishna 2012-02-14 12:18:37

+1

由於您正在使用自己的圖像作爲註釋視圖,因此應該使用MKAnnotationView。但是,是的,你可以有一些註解是MKAnnotationView,有些是MKPinAnnotationView(不要在這些圖像上設置圖像)。爲每個類使用單獨的重用ID。 – Anna 2012-02-14 12:31:00

+0

謝謝安娜.... – Krishna 2012-02-14 15:50:16

2

使用didDeselectAnnotationViewdidSelectAnnotationView並重新選擇圖像像你一樣的: -

view.image = [UIImage imageNamed:@"type2.png"];