В настоящее время я работаю с mapkit и застрял.
У меня есть пользовательский вид аннотации, который я использую, и я хочу использовать свойство изображения для отображения точки на карте с помощью моего собственного значка. У меня это нормально работает. Но то, что я также хотел бы сделать, это переопределить вид вызова по умолчанию (пузырь, который отображается с заголовком/субтитрами при касании значка аннотации). Я хочу иметь возможность управлять самой выноской: mapkit предоставляет только доступ к левым и правым представлениям сопутствующих выносок, но не имеет возможности предоставить настраиваемое представление для пузыря выноска, или дать ему нулевой размер или что-то еще.
Моя идея состояла в том, чтобы переопределить selectAnnotation/deselectAnnotation в моем MKMapViewDelegate
, а затем нарисовать собственное пользовательское представление, сделав вызов в моем пользовательском представлении аннотации. Это работает, но только когда canShowCallout
установлен в YES
в моем классе пользовательского вида аннотаций. Эти методы НЕ вызывают, если у меня установлен этот параметр на NO
(это то, что я хочу, чтобы пузырь по умолчанию не был вычерчен). Поэтому у меня нет возможности узнать, коснулся ли пользователь моей точки на карте (выбрал ее) или коснулся точки, которая не является частью моих представлений аннотаций (отразила ее), не отображая отображение пузырьков по умолчанию.
Я попытался пойти по другому пути и просто обработать все события касания самостоятельно на карте, и я не могу заставить это работать. Я читал другие сообщения, связанные с улавливанием событий касания на карте, но они не совсем то, что я хочу. Есть ли способ перекопать карту, чтобы удалить пузырь выноски перед рисованием? Я в недоумении.
Любые предложения? Мне что-то не хватает?