2012-02-14 9 views
8

Stworzyłem niestandardowe Adnotacja z następujących powodów:Adnotacja Obraz zastępuje RedPushPin gdy długie naciśnięcie na adnotacji

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

Problem: Po naciśnięciu użytkownika i przytrzymać przez 2 sekundy na każdym adnotacji obrazu (type1 lub type2) , Obraz zostaje zastąpiony przez Red PushPin (Domyślne dla iPhone MKPinAnnotationView).

Chcę uniknąć tego zamiennika. Jak mogę to zrobić?

Odpowiedz

23

Zamiast zadeklarować i utworzyć MKPinAnnotationView, zadeklaruj i utwórz zwykły MKAnnotationView.

Domyślnie MKPinAnnotationView lubi czerwoną pinezkę, do której jest przeznaczony.

+0

Chciałem wiedzieć, czy mogę umieścić RedPushPin na MKAnnotationView czy nie? – Krishna

+1

Ponieważ używasz własnego obrazu do widoku adnotacji, powinieneś użyć MKAnnotationView. Jednak tak, możesz mieć kilka adnotacji, które są MKAnnotationView, a niektóre są MKPinAnnotationView (nie ustawiaj na nich obrazu). Użyj oddzielnego identyfikatora ponownego użycia dla każdej klasy. – Anna

+0

Dzięki Anna .... – Krishna

2

Zastosowanie didDeselectAnnotationView i didSelectAnnotationView i ponownie wybrać obraz jak ty przez: -

view.image = [UIImage imageNamed:@"type2.png"]; 
Powiązane problemy