如何在iOS中的MKAnnotation中添加更多细节

时间:2010-02-26 13:57:08

标签: iphone objective-c ios mkannotation

我想在MKAnnotation中添加更多详细信息,例如位置标题,说明,日期,位置名称。所以需要四条线。但我发现只有2个参数可以传递给MKAnnotation,它们是标题和副标题。如何在地图上添加更多详细信息? Plz帮帮我..谢谢。

1 个答案:

答案 0 :(得分: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;
}

这将显示您的自定义视图,只要您有注释...如果您需要一步一步的教程,check out this video

希望这会有所帮助

修改

我实际上只是在apple开发网站上找到了一个新的Maps example ...拥有您需要完成的所有源代码。他们还使用名为MKAnnotationView

的自定义WeatherAnnotationView