添加自定义注释引脚
Posted
技术标签:
【中文标题】添加自定义注释引脚【英文标题】:Add Custom Annotation pin 【发布时间】:2016-08-27 09:40:58 【问题描述】:我正在尝试在折线的起点和终点添加自定义注释图钉。但我不知道该怎么做。这是我的地图图片。
我想在折线的起点或终点添加绿色注释图钉。
这是我的代码
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
if (annotation==mapView.userLocation)
MKAnnotationView *annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"currAnno"];
if (annotationView == nil)
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currAnno"];
annotationView.canShowCallout=YES;
annotationView.image = [UIImage imageNamed:@"mapPin.png"];
return annotationView;
else
static NSString *viewId = @"MKAnnotationView";
MKAnnotationView *annotationView = (MKAnnotationView*)
[mapView dequeueReusableAnnotationViewWithIdentifier:viewId];
if (annotationView == nil)
annotationView = [[MKAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:viewId];
annotationView.canShowCallout=YES;
annotationView.image = [UIImage imageNamed:@"mapPin.png"];//set your image here
return annotationView;
【问题讨论】:
【参考方案1】:您需要创建两个注释:一个带有折线起点坐标的注释和一个带有折线终点坐标的注释。将两个注释都添加到地图中。
注解视图以相应注解的坐标为中心。如果您希望图像中绿色引脚的底部出现在注释的坐标处(而不是引脚图像的中心),您需要使用 MKAnnotationView
对象的 centerOffset
属性来移动图片向上:
annotationView.canShowCallout=YES;
annotationView.image = [UIImage imageNamed:@"mapPin.png"];
// Move the pin image up 20 points to place the bottom of the pin
// at the annotation coordinate (adjust the value -20 to suit)
annotationView.centerOffset = CGPointMake(0, -20);
此示例将注释视图图像向上移动 20 点(负 y 值将图像向上移动)。但是,您应该为您的图像使用合适的负值,而不是 -20,例如减去图像高度的一半或任何您认为合适的值。
【讨论】:
以上是关于添加自定义注释引脚的主要内容,如果未能解决你的问题,请参考以下文章
带有默认地图视图引脚的 Swift Mapview 自定义调出视图