Ich habe ein Problem mit meiner MKAnnotationView
s, wenn MKUserTrackingModeFollowWithHeading
auf der MKMapView aktiviert ist.So stellen Sie das Rotationszentrum einer MKAnnotationView ein
Ich positionierte meine Bilder mit der Eigenschaft centerOffset des MKAnnotationView. Festlegen der Koordinaten der Spitze relativ Stecknadel auf das Koordinatensystem in der Mitte des Bildes ist etwas Gegen intuitiven, aber ich kam mit der folgenden Formel bis:
annotationView.centerOffset = CGPointMake(imageWidth/2.0 - tipXCoordinate, imageHeight/2.0 - tipYCordinate);
Dies funktioniert gut für die Karte ein- und aus . Die Spitzen der Pins behalten ihre relative Position auf der Karte.
Wenn ich jedoch MKUserTrackingModeFollowWithHeading
aktivieren, wird es nicht mehr funktionieren. Die Stifte drehen sich um die Mitte des Bildes anstelle der Spitze. Wenn die Karte rotiert, zeigen die Spitzen also nicht auf die Orte, die sie annotieren sollen.
Ich habe ein wenig mit den frame
und center
Eigenschaften der MKAnnotationView
gespielt, aber ich denke, sie haben keine Auswirkungen auf die Ausrichtung der Pins überhaupt.
Interessanterweise scheint die MKPinAnnotationView
centerOffset
überhaupt nicht zu verwenden, sondern eine verschobene frame
statt. Dies konnte ich jedoch nicht reproduzieren. Das Ändern der frame
meiner benutzerdefinierten Ansicht hat es überhaupt nicht verschoben.
Vielen Dank für alle Einsichten können Sie
Lösung :-)
bieten:nicht centerOffset verwenden! Verwenden Sie stattdessen annotationView.layer.anchorPoint
. Das Koordinatensystem des Achor-Punktes ist ebenfalls viel schöner. Koordinaten liegt im Bereich von 0,0 (oben/links) bis 1,0 (unten/rechts) das Bild Rechtecks:
annotationView.layer.anchorPoint = CGPointMake(tipXCoordinate/imageWidth, tipYCordinate/imageHeight);
Erzählen Sie Ihrem Freund, (s) er ist mein persönlicher Held der Woche :-) Vielen Dank! – Chris