Вы устанавливаете centerOffset
аннотации.
Обратите внимание, что это смещение не , масштабированное с уровнем масштабирования.Чем дальше вы уменьшаете изображение, тем дальше будет отображаться изображение от координаты.
В значении по умолчанию MKPinAnnotationView
значение centerOffset
остается по умолчанию равным 0,0, а изображение вывода разработано таким образом, чтобынижняя точка штифта находится на координате.Таким образом, при увеличении масштаба изображение булавки, кажется, увеличивается относительно карты под ним, но нижняя часть булавки все еще указывает на координату.
Вам необходимо отрегулировать centerOffset
на основе вашегоизображение или измените его, чтобы вам не нужно было устанавливать centerOffset
.Или просто попробуйте закомментировать настройку centerOffset
- возможно, она вам не нужна.
Некоторые другие не связанные элементы:
- У вас есть утечка памяти для
pprMapNote
alloc + init (добавить авто-релиз) - Вы должны использовать
dequeueReusableAnnotationViewWithIdentifier
, чтобы разрешить повторное использование представления аннотации. - Вместо использования
addTarget
для вызова собственногометод для нажатия кнопки выноски, гораздо лучше использовать собственный метод делегата представления карты calloutAccessoryControlTapped
См. этот ответ для примера вышеупомянутых трех пунктов.