Wie kann ich die Callout-Blase für MKAnnotationView anpassen?

Ich arbeite gerade mit dem Mapkit und stecke fest.

Ich verwende eine benutzerdefinierte Anmerkungsansicht und möchte die image -Eigenschaft verwenden, um den Punkt auf der Karte mit meinem eigenen Symbol anzuzeigen. Ich habe das gut funktioniert. Ich möchte aber auch die Standard-Callout-Ansicht überschreiben (die Blase, die mit dem Titel / Untertitel angezeigt wird, wenn das Anmerkungssymbol berührt wird). Ich möchte in der Lage sein, die Beschriftung selbst zu steuern: Das Mapkit bietet nur Zugriff auf die linke und rechte zusätzliche Beschriftungsansicht, aber keine Möglichkeit, eine benutzerdefinierte Ansicht für die Beschriftungsblase bereitzustellen oder ihr die Größe Null zuzuweisen oder etwas anderes.

Meine Idee war, selectAnnotation / deselectAnnotation in my zu überschreibenMKMapViewDelegateund zeichnen Sie dann meine eigene benutzerdefinierte Ansicht, indem Sie meine benutzerdefinierte Anmerkungsansicht aufrufen. Das funktioniert, aber nur wenncanShowCallout ist eingestellt aufYES in meiner Klasse für benutzerdefinierte Anmerkungsansichten. Diese Methoden werden NICHT aufgerufen, wenn ich dies eingestellt habeNO (was ich will, damit die Standard-Callout-Blase nicht gezeichnet wird). Ich habe also keine Möglichkeit zu wissen, ob der Benutzer meinen Punkt auf der Karte berührt hat (ihn ausgewählt hat) oder einen Punkt berührt hat, der nicht Teil meiner Anmerkungsansichten ist (ihn gelöscht hat), ohne dass die Standard-Sprechblasenansicht angezeigt wird.

Ich habe versucht, einen anderen Weg einzuschlagen und einfach alle Berührungsereignisse in der Karte selbst zu bearbeiten, und ich scheine nicht in der Lage zu sein, dies zum Laufen zu bringen. Ich habe in der Kartenansicht andere Posts gelesen, die sich auf das Erfassen von Berührungsereignissen beziehen, aber sie sind nicht genau das, was ich will. Gibt es eine Möglichkeit, in die Kartenansicht zu graben, um die Beschriftungsblase vor dem Zeichnen zu entfernen? Ich bin ratlos.

Irgendwelche Vorschläge? Vermisse ich etwas Offensichtliches?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage