Actualmente estoy trabajando con el mapkit y estoy atascado.
Tengo una vista de anotación personalizada que estoy usando y quiero usar la propiedad de la imagen para mostrar el punto en el mapa con mi propio ícono. Tengo esto funcionando bien. Pero lo que también me gustaría hacer es anular la vista de llamada predeterminada (la burbuja que aparece con el título / subtítulo cuando se toca el icono de anotación). Quiero poder controlar la llamada en sí: el mapkit solo proporciona acceso a las vistas de llamada auxiliares izquierda y derecha, pero no hay forma de proporcionar una vista personalizada para la burbuja de llamada, o darle tamaño cero, o cualquier otra cosa.
Mi idea era anular selectAnnotation / deselectAnnotation en my MKMapViewDelegate
, y luego dibujar mi propia vista personalizada haciendo una llamada a mi vista de anotación personalizada. Esto funciona, pero solo cuando canShowCallout
está configurado YES
en mi clase de vista de anotación personalizada. Estos métodos NO se llaman si tengo esto configurado en NO
(que es lo que quiero, para que no se dibuje la burbuja de llamada predeterminada). Por lo tanto, no tengo forma de saber si el usuario tocó mi punto en el mapa (lo seleccionó) o tocó un punto que no es parte de mis vistas de anotaciones (lo eliminó) sin que aparezca la vista de burbuja de llamada predeterminada.
Intenté ir por un camino diferente y manejar todos los eventos táctiles yo mismo en el mapa, y parece que no puedo hacer que esto funcione. Leí otras publicaciones relacionadas con la captura de eventos táctiles en la vista del mapa, pero no son exactamente lo que quiero. ¿Hay alguna forma de profundizar en la vista del mapa para eliminar la burbuja de llamada antes de dibujar? Estoy perdido.
¿Alguna sugerencia? ¿Me estoy perdiendo algo obvio?