将图像放在mapView注释中

时间:2012-07-31 03:14:47

标签: iphone ios mkmapview mkannotation mkannotationview

假设我在iPhone上保存了一个图像,并且我调用的MKAnnotationDelegate类实现了MKAnnotation协议。

我可以使用该类在地图视图上显示注释,但无法弄清楚如何设置标注附件并放入图像。

所以我已经实现了MKMapiewDelegate协议,并给了类UIImage属性,并定义了

-(MKAnnotationView *) mapView:(MKMapView *)mapView 
            viewForAnnotation:(id<MKAnnotation>)annotation;

我已经把这两行:

annotationView.canShowCallout = YES;

[(UIImageView *)annotationView.rightCalloutAccessoryView setImage: _image];

但仍然无法弄清楚如何在那里拍摄图像。

3 个答案:

答案 0 :(得分:1)

UIImageView *imageView = // init the image view ...
[imageView setImage:_image];
[annotationView setRightCalloutAccessoryView:imageView];

这些通常用于显示UIButton。

答案 1 :(得分:0)

这可能对您有所帮助,在以下方法实现中:

-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation;
{
// Initialize the MKPinAnnotationView...
UIImage *image = [UIImage imageNamed:@"imagename"];
UIImageView *imgView =[[UIImageView alloc] initWitthImage:image];
[annotationView setRighCalloutAccessoryView:imgView];
//or
[annotationView setLeftCalloutAccessoryView:imgView];

}

来自MKPinAnnotationView Class Reference上的Apple文档的内容:

  

rightCalloutAccessoryView   要在标准标注气泡右侧显示的视图。

@property (retain, nonatomic) UIView *rightCalloutAccessoryView
     的讨论      

默认情况下,此属性设置为nil。正确的标注视图通常用于链接到有关注释的更详细信息。视图的高度应为32像素或更小。为此属性指定的常见视图是UIButton对象,其类型设置为UIButtonTypeDetailDisclosure。

     

如果您指定的视图也是UIControl类的后代,则可以使用地图视图的委托在轻触控件时接收通知。如果它不是从UIControl下降,则您的视图负责处理其范围内的任何触摸事件。

另请参阅leftCalloutAccessoryView

MKPinAnnotationView属性

答案 2 :(得分:0)

您只将图像设置为RightCalloutAccessoryView,将LeftCalloutAccessoryView设置为mapview注释。 如果要将视图设置为注释而不是创建自定义注释。

尝试这个将tableview添加到注释视图link

的示例