2012-02-14 15 views
8

He creado Anotación de encargo con el siguiente:anotación imagen se sustituye por RedPushPin cuando pulsación larga en la anotación

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

Problema: Cuando la prensa y del usuario mantenga durante 2 segundos en cualquier anotación de imagen (tipo1 o tipo2) , La imagen se reemplaza por Red PushPin (predeterminado para iPhone MKPinAnnotationView).

Quiero evitar este reemplazo. ¿Como lo puedo hacer?

Respuesta

23

En lugar de declarar y crear un MKPinAnnotationView, declare y cree un MKAnnotationView simple.

Al MKPinAnnotationView le gusta el pin predeterminado, que es para lo que es.

+0

También quería saber, si puedo poner en RedPushPin MKAnnotationView o no? – Krishna

+1

Dado que está utilizando su propia imagen para la vista de anotación, debe usar MKAnnotationView. Sin embargo, sí, puede tener algunas anotaciones que sean MKAnnotationView y algunas que sean MKPinAnnotationView (no configure la imagen en esas). Use una identificación de reuso por separado para cada clase. – Anna

+0

Gracias Anna .... – Krishna

2

Uso didDeselectAnnotationView y didSelectAnnotationView y vuelva a seleccionar la imagen como lo hizo a través de: -

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