Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone MKPinAnnotationView图像偏移?_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone MKPinAnnotationView图像偏移?

Iphone MKPinAnnotationView图像偏移?,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,有人知道为什么用于MKPinAnnotationView的图像应该稍微偏移(向上和向右)吗?我使用的代码是: pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pinView_ID]; pinView.image = [UIImage imageNamed: @"TEST_Small.png"]; // RedCircleImage = 40px x 40px 72dpi PN

有人知道为什么用于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

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

我已检查centerOffset属性并将其正确设置为0,0


任何想法都欢迎

正如Dolbz所指出的,您应该使用
MKAnnotationView
而不是
MKPinAnnotationView
。设置图像时,还可以设置适合图像的
centerOffset
。默认的
centerOffset
应适用于您的图像,但如果您要显示pin、标志等,则应进行不同的设置。

我不确定这是否会导致您看到的问题,但您可能不应该尝试自定义MKPinAnnotationView。您应该使用MKAnnotationView。MKPinAnnotationView是一个具体的实现类,因此可能有它自己的逻辑与引脚动画相关,这可能会导致您看到的偏移量。这是一个很好的观点,我会看一看。这确实是一个解决方案,非常感谢Dolbz,如果您想要代表,您可以发布您的评论作为答案,否则我会用omz标记答案。这和我遇到的问题完全一样。我正在自定义
MKPinAnnotationView
,它以与您的屏幕截图类似的方式偏移了我的图像(而不是死点)。使用
MKAnnotationView
解决了这个问题,
centerOffset
现在自动设置为图像尺寸的负一半。我花了几个小时才读到你的帖子,我意识到我使用的是MKPinAnnotationView而不是MKAnnotationView。显然,中心偏移在MKPinAnnotationView中不起作用。非常感谢你的帮助。