20

我想在 MKAnnotation 中添加更多详细信息,例如位置标题、描述、日期、位置名称。所以需要四行。但我发现只有 2 个参数可以传递给 MKAnnotation,即标题和副标题。如何在地图上添加更多详细信息?请帮助我..提前谢谢。

4

1 回答 1

15

看看创建一个自定义MKAnnotationView对象......它基本上UIView是为地图注释量身定制的。在该对象中,您可以拥有 4 个自定义标签。

在您的MKMapViewDelegate课程中,您实现了该viewForAnnotation方法:

- (CustomMapAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    CustomMapAnnotationView *annotationView = nil;

    // determine the type of annotation, and produce the correct type of annotation view for it.
    CustomMapAnnotation* myAnnotation = (CustomMapAnnotation *)annotation;

    NSString* identifier = @"CustomMapAnnotation";
    CustomMapAnnotationView *newAnnotationView = (CustomMapAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:identifier];

    if(nil == newAnnotationView) {
        newAnnotationView = [[[CustomMapAnnotationView alloc] initWithAnnotation:myAnnotation reuseIdentifier:identifier] autorelease];
    }

    annotationView = newAnnotationView;
    [annotationView setEnabled:YES];
    [annotationView setCanShowCallout:YES];

    return annotationView;
}

这将在您有注释的地方显示您的自定义视图...如果您想要分步教程,请查看此视频

希望这可以帮助

编辑

实际上,我刚刚在苹果开发网站上找到了一个新的地图示例……包含您需要通过的所有源代码。他们还使用了一个MKAnnotationView名为WeatherAnnotationView

于 2010-02-26T15:33:29.953 回答