Ik ben erg nieuw voor XCode en iPhone ontwikkeling dus geduld met me als deze vraag is te simpel. Maar ik heb een kaart en ik heb succesvol toegevoegd beelden (niet pinnen) om het voor mijn aantekeningen. En ik kan het beeld veranderen wanneer de gebruiker selecteert één van de annotaties.
Ik heb een klasse die erft van MKAnnotationView op de volgende manieren: -
- (id)initWithAnnotation:
- (void)setAnnotation:
- (void)drawRect:
en ik ben met behulp van
- (void)touchesBegan
om te weten wanneer een aantekening is geselecteerd. En in touchesBegan ik doe: -
UIImage *i = [UIImage imageNamed:@A.png];
self.image = i;
om het beeld te veranderen. Maar wat ik ben echt stumped over is hoe ik het beeld te veranderen terug naar het oorspronkelijke beeld wanneer de gebruiker selecteert de volgende annotatie. Ik heb geprobeerd:-
NSArray *selectedAnnotations = map.selectedAnnotations;
for(id annotationView in selectedAnnotations) {
[map deselectAnnotation:[annotationView annotation] animated:NO];
}
maar het fouten
en ik probeerde
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;
}
}
}
de bovenstaande code werkt ok, totdat ik naar ann.image = i; Dan fouten. De fouten die ik krijg zijn: -
*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370'
Ja, ik kan zien dat mijn plaats object een beeld niet over dus dat is waarom het fout gaat. Maar als ik een afbeelding eigenschap te maken op mijn plaats object - hoe zal dat imago van de annotaties wijzigen welke wat ik probeer te doen.
Gelieve te adviseren als ik ga al rond in cirkels op dit voor nu 2 dagen !!!!
Bij voorbaat dank Cheryl













