我有一个视图>> subview mkmapview。
因为我想要显示图像。 ...我当前的图像是这样的。
我希望像这样展示
我该怎么做?如何在此anotation中添加图像。
答案 0 :(得分:7)
您正在谈论的图像对应于MKAnnotationView的leftCalloutAccessoryView属性。
摘自doc:
leftCalloutAccessoryView视图到 显示在左侧 标准标注泡沫。
您可以实现以下方法:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id )annotation {
MKAnnotationView* annotationView = nil;
MyAnnotation *myAnnotation = (MyAnnotation*) annotation;
NSString* identifier = @"Pin";
MKPinAnnotationView* annView = (MKPinAnnotationView*)[self.mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if(nil == annView) {
annView = [[[MKPinAnnotationView alloc] initWithAnnotation:myAnnotation reuseIdentifier:identifier] autorelease];
}
UIImageView *leftIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"LeftIconImage.png"]];
annView.leftCalloutAccessoryView = leftIconView;
return annotationView;
}
希望这有帮助, 文森特
答案 1 :(得分:3)
在MKAnnotationView中设置leftCalloutAccessoryView属性
leftCalloutAccessoryView要在左侧显示的视图 标准标注泡沫。
@property(保留,非原子)UIView * leftCalloutAccessoryView讨论此属性的默认值为 零。左侧标注视图是 通常用于显示信息 关于注释或链接到 您提供的自定义信息 应用。视图的高度 应该是32像素或更少。
如果您指定的视图也是 UIControl类的后代,你 可以使用地图视图的委托 你的时候收到通知 控制被轻敲。如果没有 从UIControl下来,你的观点是 负责处理任何触摸 在其范围内的事件。
可用性在iOS 3.0和 后来。另见@property canShowCallout相关示例代码 MapCallouts宣布进入 MKAnnotationView.h
Apple docs
答案 2 :(得分:-1)
v.leftCalloutAccessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"img"]];
其中v - 是注释的视图(MKAnnotationView) 或者如果你想要完整的解决方案 - 这里是:
- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{
NSString *Identifier = [NSString stringWithFormat:@"%f%f",annotation.coordinate.latitude,annotation.coordinate.longitude];
MKPinAnnotationView *annView= (MKPinAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:Identifier];
if (annView==nil) {
annView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:Identifier] autorelease];
}
if (![annotation isKindOfClass:[MyAnnotation class]]) {
return nil;
}
RightCalloutAccessoryBtn* rightButton = [RightCalloutAccessoryBtn buttonWithType:UIButtonTypeDetailDisclosure];
annView.rightCalloutAccessoryView = rightButton;
annView.leftCalloutAccessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"img"]] autorelease];
annView.canShowCallout = YES;
return annView;
}
您应该在地图代理的类中编写此代码