Ho un problema con il mio MKAnnotationView
s quando MKUserTrackingModeFollowWithHeading
è abilitato su MKMapView.Come impostare il centro di rotazione di un MKAnnotationView
Ho posizionato le mie immagini utilizzando la proprietà centerOffset di MKAnnotationView. Specificando le coordinate della punta del perno relativamente al sistema di coordinate al centro di questa immagine è alquanto controproducente intutive, ma si avvicinò con la seguente formula:
annotationView.centerOffset = CGPointMake(imageWidth/2.0 - tipXCoordinate, imageHeight/2.0 - tipYCordinate);
Questo funziona bene per lo zoom la mappa in e fuori . Le punte dei perni mantengono la loro posizione relativa sulla mappa.
Tuttavia, quando abilito MKUserTrackingModeFollowWithHeading
, non funzionerà più. I Pin ruotano attorno al centro dell'immagine, invece della punta. Quindi, quando la mappa ruota, i suggerimenti non puntano alle posizioni che dovrebbero annotare.
Ho giocato un po 'con le frame
e center
proprietà del MKAnnotationView
, ma mi sento, che stanno avendo alcun effetto sulla allineamento dei perni di sorta.
interessante notare che la MKPinAnnotationView
non sembra utilizzare centerOffset
a tutti, ma un spostato frame
invece. Tuttavia, non ero in grado di riprodurre questo. La modifica della frame
della mia vista personalizzata non è stata spostata affatto.
Grazie per eventuali approfondimenti è possibile fornire :-)
Soluzione:
Non utilizzare centerOffset! Utilizzare invece annotationView.layer.anchorPoint
. Anche il sistema di coordinate di achor point è molto più bello. Coordinate vanno da 0,0 (in alto/a sinistra) a 1,0 (in basso/a destra) del rettangolo immagine:
annotationView.layer.anchorPoint = CGPointMake(tipXCoordinate/imageWidth, tipYCordinate/imageHeight);
Dillo al tuo amico, (s) è il mio eroe personale della settimana :-) Mille grazie! – Chris