我正在尝试使用 MKMapView 使用界面构建器在我的应用程序中提取地图,但由于某种原因它没有显示出来。我还想通过单击可以浏览 iphone 中存在的文件来向该视图添加一些按钮。
请向我提供详细描述,因为我是新手。
谢谢,
我正在尝试使用 MKMapView 使用界面构建器在我的应用程序中提取地图,但由于某种原因它没有显示出来。我还想通过单击可以浏览 iphone 中存在的文件来向该视图添加一些按钮。
请向我提供详细描述,因为我是新手。
谢谢,
您需要向地图添加注释,然后为其提供自定义视图。
要向地图添加注释,请在其中一个对象中采用MKAnnotation协议,并将其坐标属性设置为适当的纬度/经度位置。
接下来,您将使用MKMapView addAnnotation将注释添加到地图。
将地图的委托属性设置为您的视图控制器,然后实现mapView:viewForAnnotation:
当这个方法被调用时,为你的注解返回一个 MKAnnotationView。将 MKAnnotationView 的图像属性设置为您希望注释使用的任何图像(也许是按钮的图像?)。
如果您想知道何时选择了注释,您可以实现mapView:didSelectAnnotationView:。
您还可以使用 MKAnnotationView 的leftCalloutAccessoryView和rightCalloutAccessoryView属性在注释上设置标注附件按钮。如果您这样做,您可以通过实现mapView:annotationView:calloutAccessoryControlTapped:在用户选择标注按钮时做出响应。
- (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;
}