2010-06-22 18 views
1

J'ai pensé que l'utilisation de ma propre image de broche personnalisée pour les annotations serait super facile.Pourquoi est-ce que je ne peux pas obtenir mapkit pour afficher une image de broche d'annotation personnalisée?

Mais je n'ai jamais réussi à le faire fonctionner, et je ne sais pas pourquoi!

Je suis simplement en utilisant:

Annotation *anno = [[[Annotation alloc] init] autorelease]; 
     anno.coordinate = ridesMap.userLocation.location.coordinate; 
     anno.title = @"Current Location"; 
     anno.subtitle = [NSString stringWithFormat:@"%f, %f", anno.coordinate.latitude, anno.coordinate.longitude]; 

     static NSString *defaultPinID = @"LocationIdentifier"; 
     MKPinAnnotationView *pinView = (MKPinAnnotationView *)[ridesMap dequeueReusableAnnotationViewWithIdentifier:defaultPinID]; 
     if (pinView == nil){ 
      pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:anno reuseIdentifier:defaultPinID] autorelease]; 
     } 

     pinView.image = [UIImage imageNamed:@"custom_pin.png"]; 
     pinView.opaque = NO; 
     pinView.canShowCallout = YES; 
     pinView.draggable = NO; 

     pinView.annotation = anno; 
     NSLog(@"Adding current location annotation"); 

     return pinView; 

Je suppose que cela devrait fonctionner, comme UIImage est ce qu'il manque, et j'ai le fichier custom_pin.png dans mon projet.

Il n'utilise jamais mon image, mais seulement la broche rouge standard. Qu'est-ce que je fais mal ici?

Répondre

9

De la documentation:

La classe MKPinAnnotationView fournit une vue d'annotation concrète qui affiche une icône d'épingle comme ceux trouvés dans l'application Maps.

En d'autres termes, un MK Pin AnnotationView ignorera la propriété d'image et affiche toujours une épingle. Utilisez plutôt un MKAnnotationView normal.

+0

Oui! Cela a fait l'affaire. Je ne sais pas comment j'ai raté ça! Je vous remercie. –

+0

Cette réponse m'a sauvé beaucoup de temps. Malheureusement, le SIMULATEUR a un BUG et même difficile que j'utilisais le MKPinAnnotationView le simulateur me montrait la bonne image ce que j'ai mis, seulement l'appareil ne m'a pas montré l'image. J'ai conduit fou jusqu'à ce que j'ai trouvé ce post. Merci encore. Et soyez prudent, LE SIMULATEUR EST VOTRE PLUS GRAND ENNEMI! :-) –