2012-07-31 85 views
0

假设我有一个保存在iPhone上的图像,并且我称为MKAnnotationDelegate的类实现了MKAnnotation协议。把图像放入mapView注释

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

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

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

,我已经把这两行:

annotationView.canShowCallout = YES; 

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

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

+0

检查我的答案:http://stackoverflow.com/questions/4819006/iphone-sdk-mapkit-multiple-points-and-annotation/4826030#4826030 – HelmiB 2012-07-31 03:23:19

回答

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

这些通常用于显示UIButton。

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

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

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

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

如果指定的观点也是UIControl类的子类,你可以使用地图视图的委托时,你的控制被窃听接收通知。如果它不从UIControl下降,则您的视图负责处理其范围内的任何触摸事件。

也可参考的MKPinAnnotationView您设置图像只进RightCalloutAccessoryView和LeftCalloutAccessoryView到MapView的注释

0

leftCalloutAccessoryView财产。 如果您希望将视图设置为注释,那么您可以创建自定义注释。

试试这个将tableview添加到注释视图link的示例。