如何在Iphone的地图上放置一个按钮

时间:2010-07-21 21:14:26

标签: iphone objective-c mkmapview mkannotation

我正在尝试使用MKMapView在我的应用程序中使用界面构建器来绘制地图但由于某种原因它没有显示。此外,我想通过点击我可以浏览我的iPhone中存在的文件,为此视图添加一些按钮。

请向我提供我不熟悉的描述。

谢谢,

2 个答案:

答案 0 :(得分:1)

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

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

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

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

调用此方法时,返回MKAnnotationView作为注释。将MKAnnotationView的图像属性设置为您希望注释使用的任何图像(可能是按钮的图像?)。

如果您想知道选择注释的时间,可以实现 mapView:didSelectAnnotationView:

您还可以使用MKAnnotationView的 leftCalloutAccessoryView rightCalloutAccessoryView 属性在注释上设置标注附件按钮。如果执行此操作,则可以在用户通过实现 mapView:annotationView:calloutAccessoryControlTapped:选择callout按钮时进行响应。

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