Jestem bardzo nowe do XCode i iPhone rozwoju, więc proszę pokrywa się ze mną, jeśli to pytanie jest zbyt proste. Ale mam mapę i I zostały pomyślnie dodane obrazy (nie szpilki), aby go dla moich adnotacji. I mogę zmienić obraz, gdy użytkownik wybierze jedną z adnotacji.
Utworzono klasę, która dziedziczy MKAnnotationView z następujących metod: -
- (id)initWithAnnotation:
- (void)setAnnotation:
- (void)drawRect:
i używam
- (void)touchesBegan
wiedzieć, kiedy został wybrany adnotacja. Aw touchesBegan robie: -
UIImage *i = [UIImage imageNamed:@A.png];
self.image = i;
aby zmienić obraz. Ale co ja naprawdę zakłopotany na to w jaki sposób mogę zmienić obraz z powrotem na to oryginalny obraz, gdy użytkownicy wybiera następną adnotacji. Próbowałem:-
NSArray *selectedAnnotations = map.selectedAnnotations;
for(id annotationView in selectedAnnotations) {
[map deselectAnnotation:[annotationView annotation] animated:NO];
}
Ale błędy
i próbowałem
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;
}
}
}
Powyższy kod działa ok, dopóki mogę ann.image = I; Następnie błędów. Błędy dostaję to: -
*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370'
Tak widzę, że moje miejsce obiekt nie ma obrazu więc dlatego to będzie źle. Ale jeśli utworzyć właściwość obrazu na moim miejscu obiektu - jak to zmienić obraz adnotacje, które co próbuję zrobić.
Proszę doradzić jak ja jeździmy w kółko na ten jeden na 2 dni teraz !!!!
Z góry dzięki Cheryl













