0

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

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

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

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

我已经输入了这两行:

annotationView.canShowCallout = YES;

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

但仍然无法弄清楚该怎么做才能将图像放在那里。

4

3 回答 3

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

这些通常用于显示 UIButton。

于 2012-07-31T03:24:08.333 回答
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];

}

Apple Docs 中关于MKPinAnnotationView 类参考的内容:

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

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

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

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

另请参阅leftCalloutAccessoryView的财产MKPinAnnotationView

于 2012-07-31T04:52:59.567 回答
0

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

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

于 2012-07-31T05:47:41.993 回答