如何设置MKAnnotationView的旋转中心

时间:2012-07-24 11:32:22

标签: mkmapview mkannotationview mkpinannotationview

在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

1 个答案:

答案 0 :(得分:13)

一位朋友要我告诉你,你应该“试试这个”:

self.layer.anchorPoint = CGPointMake (0.5f, 1.0f);