Je suis très nouveau pour le développement XCode et iPhone donc s'il vous plaît garder avec moi si cette question est trop simple. Mais j'ai une carte et j'ai ajouté avec succès les images (non pins) à pour mes annotations. Et je peux changer l'image lorsque l'utilisateur sélectionne une des annotations.
J'ai créé une classe qui hérite de MKAnnotationView avec les méthodes suivantes: -
- (id)initWithAnnotation:
- (void)setAnnotation:
- (void)drawRect:
et je suis en utilisant
- (void)touchesBegan
à savoir quand une annotation a été sélectionné. Et en touchesBegan que je fais: -
UIImage *i = [UIImage imageNamed:@A.png];
self.image = i;
pour changer l'image. Mais ce que je suis vraiment perplexe sur comment puis-je modifier l'image à son image d'origine lorsque les utilisateurs sélectionne la prochaine annotation. J'ai essayé:-
NSArray *selectedAnnotations = map.selectedAnnotations;
for(id annotationView in selectedAnnotations) {
[map deselectAnnotation:[annotationView annotation] animated:NO];
}
mais il des erreurs
et j'ai essayé
for (MKAnnotationView *ann in map.selectedAnnotations){
if ([ann isMemberOfClass:[Place class]])
{
place = (Place *)ann;
NSLog(@second = %@@ %f@ %f, place.title, place.longitude, place.latitude);
if (currentPlaceID == place.placeID) {
//UIImage *i = [UIImage imageNamed:@A.png];
//ann.image = i;
}
else {
UIImage *i = [UIImage imageNamed:@pin.png];
ann.image = i;
}
}
}
le code ci-dessus fonctionne bien jusqu'à ce que je à ann.image = i; alors il des erreurs. Les erreurs que je reçois sont les suivantes: -
*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370'
Oui, je peux voir que mon objet lieu n'a pas une image si c'est pourquoi il ne va pas. Mais si je crée une propriété d'image sur mon objet place - comment cela va changer l'image des annotations qui ce que je suis en train de faire.
S'il vous plaît conseiller que Je vais tourner en rond sur celui-ci pendant 2 jours maintenant !!!!
Merci à l'avance Cheryl













