Я решил проблему, добавив наблюдатель. Наблюдатель затем делает свое дело и после того, что выноска показывает вверх.
Что-то у меня были проблемы с в том, что я не мог обновить информацию в выноски пузыре после того, как пузырек показано на рисунке. Единственный способ сделать это, чтобы создать свой собственный выноски пузырь (как я понимаю), что-то я не чувствую, учитывая, что у меня есть крайний срок. Я установил, что путем добавления дополнительного UIView с альфа на нем и текст «Получение данных о местоположении ...». Я просто показать, что вид при нажатии на месте и, когда наблюдатель будет сделано, я снова скрыть вид (от курса с помощью анимации).
Надеюсь, что мой ответ помог другим.
Код:
[pin addObserver:self
forKeyPath:@"selected"
options:NSKeyValueObservingOptionNew
context:GMAP_ANNOTATION_SELECTED];
Еще немного кода:
- (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");
}
}
}
И поставить это только после того, как @ синтезируют-х:
NSString * const GMAP_ANNOTATION_SELECTED = @"gmapselected";