0

我正在尝试使用 MKMapView 使用界面构建器在我的应用程序中提取地图,但由于某种原因它没有显示出来。我还想通过单击可以浏览 iphone 中存在的文件来向该视图添加一些按钮。

请向我提供详细描述,因为我是新手。

谢谢,

4

2 回答 2

1

您需要向地图添加注释,然后为其提供自定义视图。

要向地图添加注释,请在其中一个对象中采用MKAnnotation协议,并将其坐标属性设置为适当的纬度/经度位置。

接下来,您将使用MKMapView addAnnotation将注释添加到地图。

将地图的委托属性设置为您的视图控制器,然后实现mapView:viewForAnnotation:

当这个方法被调用时,为你的注解返回一个 MKAnnotationView。将 MKAnnotationView 的图像属性设置为您希望注释使用的任何图像(也许是按钮的图像?)。

如果您想知道何时选择了注释,您可以实现mapView:didSelectAnnotationView:。

您还可以使用 MKAnnotationView 的leftCalloutAccessoryViewrightCalloutAccessoryView属性在注释上设置标注附件按钮。如果您这样做,您可以通过实现mapView:annotationView:calloutAccessoryControlTapped:在用户选择标注按钮时做出响应。

于 2010-07-21T21:54:57.823 回答
0
- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
{
    static NSString *AnnotationViewID = @"annotationViewID";

     annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];

    if (annotationView == nil)
    {
        annotationView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID] autorelease];
    }
    annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    annotationView.image = [UIImage imageNamed:@"s11.png"];

    annotationView.annotation = annotation;

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

    return annotationView;
}
于 2010-07-22T13:51:52.003 回答