So legen Sie das Rotationszentrum eines MKAnnotationView fest

8

Ich habe ein Problem mit meinem MKAnnotationView s, wenn MKUserTrackingModeFollowWithHeading in MKMapView aktiviert ist.

Ich positionierte meine Bilder mit der Eigenschaft centerOffset des MKAnnotationView. Die Koordinaten der Spitze des Stiftes relativ zum Koordinatensystem in der Mitte des Bildes anzugeben, ist etwas kontrapunktisch, aber ich habe die folgende Formel gefunden:

%Vor%

Dies funktioniert gut, um die Karte ein- und auszuzoomen. Die Spitzen der Pins behalten ihre relative Position auf der Karte.

Wenn ich MKUserTrackingModeFollowWithHeading jedoch aktiviere, funktioniert es nicht mehr. Die Stifte drehen sich um die Mitte des Bildes anstelle der Spitze. Wenn also die Karte rotiert, zeigen die Spitzen nicht auf die Orte, die sie mit Anmerkungen versehen sollen.

Ich habe ein bisschen mit den Eigenschaften frame und center von MKAnnotationView herumgespielt, aber ich habe das Gefühl, dass sie keinerlei Auswirkungen auf die Ausrichtung der Pins haben.

Interessanterweise scheint die MKPinAnnotationView nicht centerOffset , sondern eine verschobene frame zu verwenden. Dies konnte ich jedoch nicht reproduzieren. Das Ändern der frame meiner benutzerdefinierten Ansicht hat es überhaupt nicht verschoben.

Vielen Dank für Ihre Einsichten: -)

Lösung:

Verwenden Sie nicht centerOffset! Verwenden Sie stattdessen annotationView.layer.anchorPoint . Das Koordinatensystem des Achor-Punktes ist ebenfalls viel schöner. Die Koordinaten reichen von 0.0 (oben / links) bis 1.0 (unten / rechts) des Bildrechtecks:

%Vor%     
Chris 24.07.2012, 11:32
quelle

1 Antwort

12

Ein Freund bittet mich, Sie wissen zu lassen, dass Sie "das zum Beispiel ausprobieren sollten":

%Vor%     
paniq 24.07.2012, 15:59
quelle