在MKMapView上启用MKAnnotationView
时,我的MKUserTrackingModeFollowWithHeading
出现了问题。
我使用MKAnnotationView的centerOffset属性定位我的图像。指定针尖相对于图像中心坐标系的坐标有点反直觉,但我想出了以下公式:
annotationView.centerOffset = CGPointMake(imageWidth/2.0 - tipXCoordinate, imageHeight/2.0 - tipYCordinate);
这适用于放大和缩小地图。针脚的尖端保持其在地图上的相对位置。
但是,当我启用MKUserTrackingModeFollowWithHeading
时,它将不再有效。引脚围绕图像的中心旋转,而不是尖端。因此,当地图旋转时,提示不会指向它们应该注释的位置。
我使用frame
的{{1}}和center
属性玩了一下,但我觉得,它们对引脚的任何对齐没有任何影响。< / p>
有趣的是,MKAnnotationView
似乎根本不使用MKPinAnnotationView
,而是转移了centerOffset
。但是,我无法重现这一点。更改我的自定义视图的frame
根本没有移动它。
感谢您提供的任何见解: - )
解决方案:
不要使用centerOffset!请改用frame
。 achor点的坐标系也好得多。坐标范围从图像矩形的0.0(上/左)到1.0(下/右):
annotationView.layer.anchorPoint
答案 0 :(得分:13)
一位朋友要我告诉你,你应该“试试这个”:
self.layer.anchorPoint = CGPointMake (0.5f, 1.0f);