下面,我为我的地图创建了一个注释,它完美地运行并显示标题和副标题。
但是我希望在注释的左边添加一个小图片,但是无法弄清楚我需要对下面的代码做些什么来使它工作。
// Annotation
CLLocationCoordinate2D poseLocation;
poseLocation.latitude = POSE_LATITUDE;
poseLocation.longitude = POSE_LONGITUDE;
Annotation *myAnnotation = [[Annotation alloc] init];
myAnnotation.coordinate = poseLocation;
myAnnotation.title = @"Pose Beauty Salon";
myAnnotation.subtitle = @"100, Moneyhaw Road";
[self.myMapView addAnnotation:myAnnotation];
答案 0 :(得分:2)
您需要先设置myMapView的委托,然后实现viewForAnnotation委托方法。
在那里你将返回具有属性leftCalloutAccessoryView的MKAnnotationView实例:
标准标注气泡左侧显示的视图。 此属性的默认值为nil。左侧标注视图是 通常用于显示有关注释或链接的信息 到您的应用程序提供的自定义信息。你的高度 视图应为32像素或更少。
在leftCalloutAccessoryView中,您可以在那里分配图像。例如:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[self.myMapView dequeueReusableAnnotationViewWithIdentifier:@"annotation"];
if (annotationView == nil) {
annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"annotation"];
UIImageView *imageView = //initialize your image view here
annotationView.leftCalloutAccessoryView = imageView;
}
annotationView.annotation = annotation;
return annotationView;
}
PS:显然你在此之前提出了类似的问题:Add image to the left of my annotations。我不确定你是否需要发布另一个问题。请先尝试实现这一点。
答案 1 :(得分:0)
-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{
MKPinAnnotationView *MyPin=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"current"];
myImage = [UIImage imageNamed:imagename];
CGRect cropRect = CGRectMake(0.0, 0.0,35.0, 35.0);
myImageView = [[UIImageView alloc] initWithFrame:cropRect];
myImageView.clipsToBounds = YES;
myImageView.image = myImage;
MyPin.leftCalloutAccessoryView =myImageView;
MyPin.highlighted=YES;
MyPin.canShowCallout=YES;
return MyPin;
}
它对我有用,试试这个