Oldottam meg a kérdést hozzátéve egy megfigyelő. A megfigyelő akkor teszi a dolgot, és azt követően, hogy a kiemelő felbukkan.
Valami gondjaim voltak, hogy nem tudtam frissíteni az információkat a kiemelő buborék után a buborék látható. Az egyetlen módja, hogy ezt is, hogy saját kiemelő buborék (ha jól értem), amire én nem érzem, mivel van egy határidőt. Én fix, hogy hozzáadásával extra UIView alfa rajta, és a szöveg „Első helyen adatok ...”. Csak jelenne meg, hogy a néző, ha megnyom egy helyen, és amikor a megfigyelő tettem, elrejti a nézet újra (ki természetesen segítségével egy animáció).
Remélem válaszom segített másoknak.
Kód:
[pin addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
Néhány további kód:
- (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");
}
}
}
És hogy ezt csak a @ után szintetizálása a:
NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";