Je travaille actuellement avec le mapkit et je suis bloqué.
J'utilise une vue d'annotation personnalisée et je souhaite utiliser la propriété image pour afficher le point sur la carte avec ma propre icône. J'ai cela fonctionne bien. Mais ce que j'aimerais aussi faire est de remplacer la vue de légende par défaut (la bulle qui apparaît avec le titre / sous-titre lorsque l'icône d'annotation est touchée). Je veux pouvoir contrôler la légende elle-même: le mapkit ne donne accès qu'aux vues de légende auxiliaires gauche et droite, mais aucun moyen de fournir une vue personnalisée pour la bulle de légende, ou de lui donner une taille nulle, ou quoi que ce soit d'autre.
Mon idée était de remplacer selectAnnotation / déselectAnnotation dans my MKMapViewDelegate
, puis de dessiner ma propre vue personnalisée en appelant ma vue d'annotation personnalisée. Cela fonctionne, mais uniquement lorsque canShowCallout
est défini sur YES
dans ma classe de vue d'annotation personnalisée. Ces méthodes ne sont PAS appelées si ce paramètre est défini sur NO
(ce que je veux, pour que la bulle de légende par défaut ne soit pas dessinée). Je n'ai donc aucun moyen de savoir si l'utilisateur a touché mon point sur la carte (l'a sélectionné) ou a touché un point qui ne fait pas partie de mes vues d'annotation (l'a supprimé) sans que la vue de bulle de légende par défaut apparaisse.
J'ai essayé de suivre un chemin différent et de gérer moi-même tous les événements tactiles dans la carte, et je n'arrive pas à faire fonctionner cela. J'ai lu d'autres articles liés à la capture d'événements tactiles dans la vue de la carte, mais ils ne sont pas exactement ce que je veux. Existe-t-il un moyen de creuser dans la vue de la carte pour supprimer la bulle de légende avant de dessiner? Je suis à perte.
Aucune suggestion? Est-ce que je rate quelque chose d'évident?