0

viewload我循环一些数据并添加点:

    for (id venue in venues) {

        MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
        point.coordinate = coords here;
        point.title = @"title"
        point.subtitle = @"sub";

        [self.map addAnnotation:point];
    }

我想要做的是在注释中添加一个简单的披露按钮。我正在使用以下内容:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {

    MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"String"];
    if(!annotationView) {
        annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"String"];
        annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    }

    annotationView.enabled = YES;
    annotationView.canShowCallout = YES;

    return annotationView;
}

然而,在视图加载后,精确点不再显示。如果我删除viewForAnnotation正确加载的所有内容,但是我当然没有披露按钮。

我在这里做错了什么?

4

1 回答 1

2

如果您想在 MapView 中添加“PIN”,您应该使用MKPinAnnotationView,而不是MKAnnotationView.

- (MKAnnotationView *)mapView:(MKMapView*)mapView
        viewForAnnotation:(id <MKAnnotation>)annotation
{
  MKPinAnnotationView *annotationView = (MKPinAnnotaionView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"String"];
  if(!annotationView) {
    annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"String"];
    annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
  }
}

显示按钮。

在此处输入图像描述

于 2015-09-24T02:04:00.247 回答