【问题标题】:Change the image's origin of map annotation view?更改地图注释视图的图像来源?
【发布时间】:2012-11-21 11:23:35
【问题描述】:

常规注解图钉的原点在底部中间 所以,大头针总是指向同一个地方。

但是当我添加我的自定义图像时,它的原点是图像的中心,所以每次放大或缩小,我的图像底部都会指向不同的位置。

这里我的图钉应该指向巴黎的中心但是

但是当我放大时,我的图钉底部没有指向巴黎的中心。

我正在尝试使用 CGRect.origin,但没有得到任何有用的信息。

这是我的代码:

- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    MKAnnotationView * customPinView = [[MKAnnotationView alloc] init];
    UIImage * img = [UIImage imageNamed:@"waterPin.png"] ;
    CGRect resizeRect;
    resizeRect.size.height = 40;
    resizeRect.size.width = 40;
    resizeRect.origin = (CGPoint){0.0f, 0.0f};
    UIGraphicsBeginImageContext(resizeRect.size);
    [img drawInRect:resizeRect];
    UIImage *resizedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    customPinView.image = resizedImage;
    return customPinView;
}

【问题讨论】:

  • 如果你能发布一些代码??
  • 注释设置的坐标(纬度/经度)到底是多少?尝试设置customPinView.centerOffset 来调整图像偏移(但我会先验证坐标)。此外,您应该使用 initWithAnnotation 而不是只为 MKAnnotationView 使用 init。
  • 不不,坐标是对的,但就是那个小属性,centerOffset,非常感谢
  • 您好,您能告诉我如何将默认引脚替换为“waterPin.png”。
  • 在上面的代码中,只要获取你的图片,并将其分配给注解的image属性 img = .....; pin.image = img;

标签: ios mapkit mkannotationview


【解决方案1】:

MKAnnotationView 有一个centerOffset 属性,您可以尝试设置它来调整图像偏移:

customPinView.centerOffset = CGPointMake(xOffset,yOffset);


不相关,但您应该使用initWithAnnotation 而不仅仅是init 创建MKAnnotationView
使用dequeueReusableAnnotationViewWithIdentifier 并实现注解视图重用以提高性能也没有什么坏处。

我还建议不要在委托方法中以编程方式调整图像大小,而是使用已经调整大小的图像开始。然后你可以只做customPinView.image = [UIImage imageNamed:@"resizedWaterPin.png"];,而不需要每次都在运行时调整注释图像的大小。

【讨论】:

  • 拖着怎么办?!我将它设置为可拖动 = YES,但不是所有视图,我需要在某些确切位置单击才能拖动它。我想把它拖到我触摸它的任何地方
  • 确保你的注解类实现了 setCoordinate 否则即使 draggable 是 YES 也不能被拖动。见stackoverflow.com/questions/11927692/…the documentation
  • 它在拖动,是的,我实现了所需的方法,但是引脚本身,我需要从特定位置触摸它们,而不是引脚的任何位置
  • 对不起,我不明白。您可能想用更多细节开始一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-21
  • 2011-11-05
  • 2013-05-08
相关资源
最近更新 更多