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