MKMapView: Получите нажатое событие на контакте аннотации

Все в Java передается по значению, а значения переменных всегда являются примитивами или ссылками на объект.

19
задан Piyush Dubey 13 February 2014 в 08:26
поделиться

2 ответа

Я не видел простого способа сделать это в MapKit. В делегате нет mapView: annotationWasTapped: .

Один из способов сделать это - предоставить собственный подкласс представления аннотации. Пользовательское представление аннотации может захватывать выбор вывода в setSelected: animated: или в обработчике событий более низкого уровня и передавать эту информацию на ваш контроллер представления.

1
ответ дан 30 November 2019 в 02:52
поделиться

вы можете использовать наблюдателя для выбранного события:

[pin addObserver:self
      forKeyPath:@"selected" 
         options:NSKeyValueObservingOptionNew
         context:@"ANSELECTED"];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{

    NSString *action = (NSString*)context;

    if([action isEqualToString:@"ANSELECTED"]){

        BOOL annotationAppeared = [[change valueForKey:@"new"] boolValue];
        if (annotationAppeared) {
            // clicked on an Annotation
        }
        else {
            // Annotation disselected
        }
    }
}
3
ответ дан 30 November 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: