當MKMapView啓用MKUserTrackingModeFollowWithHeading
時,我遇到了MKAnnotationView
的問題。如何設置MKAnnotationView的旋轉中心
我使用MKAnnotationView的centerOffset屬性定位了我的圖像。指定針的針尖相對於在圖像的中心座標系的座標是有點反intutive,但我想出了下面的公式:
annotationView.centerOffset = CGPointMake(imageWidth/2.0 - tipXCoordinate, imageHeight/2.0 - tipYCordinate);
這工作正常,在放大和縮小地圖。引腳的尖端保持其在地圖上的相對位置。
但是,當我啓用MKUserTrackingModeFollowWithHeading
時,它將不再工作。引腳圍繞圖像的中心旋轉,而不是尖端。所以當地圖旋轉時,提示並不指向他們應該註釋的位置。
我已經玩了frame
和center
屬性MKAnnotationView
,但我覺得,他們沒有任何影響的針腳alignement。
有趣的是,MKPinAnnotationView
似乎根本沒有使用centerOffset
,而是改用frame
代替。但是,我無法重現這一點。更改我的自定義視圖的frame
根本沒有移動它。
感謝任何見解,可以提供:-)
解決方案:
不要使用centerOffset!改爲使用annotationView.layer.anchorPoint
。 achor點的座標系也更好。座標範圍爲0.0(上/左)到1.0(下/右)的圖像矩形爲:
annotationView.layer.anchorPoint = CGPointMake(tipXCoordinate/imageWidth, tipYCordinate/imageHeight);
告訴你的朋友,(s)他是我本週的個人英雄:-)非常感謝! – Chris 2012-07-25 08:00:25