在MKMapView上设置多个引脚,并让Callout View显示正确的信息?

时间:2012-08-03 00:44:12

标签: ios mkmapview mkannotation

我有一个对象数组,其中包含地图上每个图钉的信息。我可以使用[mapView addAnnotions:array];将具有各自坐标的那些添加到地图上。但是,当选择一个引脚,然后显示该特定引脚的Callout视图(使用正确的引脚位置和我的数组中的正确信息)时,我迷路了。我也不完全知道Callout视图如何适用于多个引脚。我曾尝试过查看Apple示例代码,但它没有太大帮助,谷歌搜索问题也无济于事。

简单版本:你应该如何在地图上有很多引脚,并在它们被选中时以及在调用标注视图时区分它们?

编辑:例如,iPhone上的地图应用如何与显示商家的多个位置配合使用,当您点按它们时,会显示正确的名称和指向该商家的链接。

1 个答案:

答案 0 :(得分:1)

试试这段代码

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

static NSString *identifier = @"MyLocation";   
if ([annotation isKindOfClass:[MNMyLocation class]]) {

    MKPinAnnotationView *annotationView = (MKPinAnnotationView *) [atmLocatorMap dequeueReusableAnnotationViewWithIdentifier:identifier];
    if (annotationView == nil) {
        annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
    } else {
        annotationView.annotation = annotation;
    }

    annotationView.enabled = YES;
    annotationView.canShowCallout = YES;
    //annotationView.image=[UIImage imageNamed:@"arrest.png"];

    return annotationView;
}

return nil;    

}