Je suis très nouveau dans le développement de XCode et de l'iPhone, alors s'il vous plaît gardez-moi si cette question est trop simple. Mais j'ai une carte et j'ai réussi à ajouter des images (pas des pins) pour mes annotations. Et je peux changer l'image lorsque l'utilisateur sélectionne l'une des annotations.mapkit et les annotations
J'ai créé une classe qui hérite de MKAnnotationView avec les méthodes suivantes: -
- (id)initWithAnnotation:
- (void)setAnnotation:
- (void)drawRect:
et je me sers
- (void)touchesBegan
savoir quand une annotation a été sélectionné. Et en touchesBegan je fais: -
UIImage *i = [UIImage imageNamed:@"A.png"];
self.image = i;
pour changer l'image. Mais ce que je suis vraiment perplexe est comment puis-je changer l'image à son image originale lorsque les utilisateurs sélectionne l'annotation suivante. J'ai essayé: -
NSArray *selectedAnnotations = map.selectedAnnotations;
for(id annotationView in selectedAnnotations) {
[map deselectAnnotation:[annotationView annotation] animated:NO];
}
mais elle erreurs
et moi avons 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 erreurs. Les erreurs que je reçois sont: -
*** -[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 que ce que j'essaie de faire.
S'il vous plaît aviser comme je suis allé dans les cercles sur celui-ci pendant 2 jours maintenant !!!!
Merci à l'avance Cheryl