Я рисую MKMapView
в своем приложении для iOS, и на этой карте есть несколько аннотаций с пользовательскими изображениями, представляющими их. Изображение немного меняется (светится) при выборе определенной аннотации.
Для этого я использую метод делегата mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!)
для изменения изображения (путем изменения view.annotation.image
). Кажется, это нормально работает.
Однако, когда я использую метод mapView(mapView: MKMapView!, didDeselectAnnotationView view: MKAnnotationView!)
, чтобы вернуть изображение обратно после его отмены, он перерисовывает аннотацию в верхнем левом углу карты. Любое взаимодействие пользователя с картой затем немедленно перерисовывает ее в нужном месте, так что это похоже на то, что карта не обновляется после вызова метода до тех пор, пока не будет сделан щелчок или что-то еще.
Действительно ли это правильный способ изменить изображение аннотации (путем перезаписи текущего view.annotation.image
, и если да, то есть ли способ обновить карту?
РЕДАКТИРОВАТЬ: Я также заметил, что каждый раз, когда я выбираю новую аннотацию, центр карты смещается вниз примерно на 100 пикселей. Есть ли что-то, что мне не хватает, что мне нужно сделать после вызова любого из этих двух методов, упомянутых выше?