I rozwiązać problem dodając obserwatora. Obserwator następnie robi jego rzecz, a potem pojawia się objaśnienie.
Coś miałem problemy z jest, że nie mogę zaktualizować informacje w bańce objaśnienia po bańka jest pokazany. Jedynym sposobem, aby to zrobić, aby stworzyć swój własny objaśnienia bańkę (jak rozumiem), który jest coś, czego nie miała ochoty zważywszy, że mam termin. Naprawiłem że poprzez dodanie UIView z alfa na nim i tekst „Pobieranie danych o lokalizacji ...”. Ja po prostu pokazać się tego widoku, gdy naciśnięcie lokalizację i gdy obserwator jest zrobione, ja znowu ukryć widok (poza oczywiście za pomocą animacji).
Nadzieję, że moja odpowiedź pomogła innym.
Kod:
[pin addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
Niektóre bardziej Kod:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context{
NSString *action = (NSString*)context;
MKAnnotationView *annotationView = [(MKAnnotationView*)object retain];
BikeAnnotation *bike = [[annotationView annotation] retain];
if([action isEqualToString:GMAP_ANNOTATION_SELECTED] && [[bike _stationType] intValue] != 5 && [[bike _stationType] intValue] != 6){
BOOL annotationAppeared = [[change valueForKey:@"new"] boolValue];
if (annotationAppeared) {
NSLog(@"Annotation selected");
else {
NSLog(@"annotation deselected");
}
}
}
I umieścić to tuż po @ Synthesize na:
NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";