MKPinAnnotationView图像偏移?

5

有没有人知道为什么MKPinAnnotationView使用的图像应该略微偏移(向上和向右)?我正在使用的代码是:

pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pinView_ID];
pinView.image = [UIImage imageNamed: @"TEST_Small.png"];
// RedCircleImage = 40px x 40px 72dpi PNG
// GreenDotImage = 2px x 2px 72dpi PNG

alt text

代码没有变化,只是更改了所使用图像的文件名。一个图像是“中心有黑点的两个红圆环”,另一个图像是“小绿点”。我已经在Photoshop中添加了细蓝线,以帮助显示绿点的位置。

我已经检查了centerOffset属性,它正确地设置为0,0。

欢迎任何想法。


2
我不确定这是否导致了您所看到的问题,但您可能不应该尝试自定义MKPinAnnotationView。您应该使用MKAnnotationView。MKPinAnnotationView是一个具体实现类,因此可能具有与标记动画相关的逻辑,这可能导致您看到的偏移量。 - Dolbz
嗨,那是个好观点,我会看一下的。 - fuzzygoat
这确实是解决方案,非常感谢Dolbz,如果你想要声望分,你可以把你的评论发表为答案,否则我会标记omz的答案。 - fuzzygoat
这正是我遇到的同样问题。我正在自定义MKPinAnnotationView,并且它以类似于您的屏幕截图的方式偏移了我的图像(而不是在中心位置)。使用MKAnnotationView解决了这个问题,并且centerOffset现在自动设置为图像尺寸的负一半。 - Andrew
1个回答

14

正如Dolbz所指出的那样,您应该使用MKAnnotationView而不是MKPinAnnotationView。当您设置图像时,还可以设置适合您图像的centerOffset(中心偏移量)。默认的centerOffset应该适用于您的图像,但如果您要显示一个图钉、旗帜等,则需要将其设置为不同的值。


1
我花了好几个小时才看到了你的帖子,意识到我一直在使用的是 MKPinAnnotationView 而不是 MKAnnotationView。显然,在 MKPinAnnotationView 中 centerOffset 不起作用。非常感谢你的帮助。 - Ricardo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接