Могу ли я перехватить отмену выбора маркера при касании другого маркера в Google Maps SDK для iOS?

Я знаю, что могу использовать didTapAtCoordinate, чтобы снять выделение с маркера, когда я коснусь другого места на карте. Но если есть несколько маркеров, и я нажимаю на другой (например, MarkerA -> MarkerB), есть ли какой-либо обратный вызов, когда предыдущий маркер DidDeselect?. Я осматриваюсь в GMSMapView, но не могу найти ничего, что можно было бы использовать.

Я хочу изменить цвет или изображение маркера при его выборе и изменить его обратно, когда выбирается другой маркер или маркер отменяется.

Спасибо.


person KoKo HL Apinyanont    schedule 30.04.2014    source источник


Ответы (1)


В документе для selectedMarker говорится:

Выбранный маркер. Установка этого свойства выбирает конкретный маркер, показывая информационное окно о нем. Если это свойство не равно нулю, установка его в nil отменяет выбор маркера, скрывая информационное окно. Это свойство можно наблюдать с помощью KVO.

Таким образом, вы можете использовать Наблюдение за ключевым значением, чтобы получать уведомления об изменениях в selectedMarker. Если вы используете NSKeyValueObservingOptionOld при настройке KVO (более подробно описано здесь), вы будете уведомлены о старом значении, т.е. о маркере, который был снят.

person Saxon Druce    schedule 30.04.2014
comment
Мне потребовалось некоторое время, чтобы понять, как работает KVO. И это работает отлично Спасибо. - person KoKo HL Apinyanont; 02.05.2014