我在MKMapView上使用MKPinAnnotationView,標題和副標題通常顯示爲,但rightCalloutAccessoryView
未顯示。rightCalloutAccessoryView未在MKPinAnnotationView上顯示
我試了google很多,但無法顯示它呢。我的代碼如下。
- (void)addAnnotation
{
CLLocationCoordinate2D theCoordinate = self.location.coordinate;
MapAnnotation *annotation = [[MapAnnotation alloc] initWithCoordinate:theCoordinate];
annotation.title = @"Pin";
annotation.subtitle = @"More information";
[self.mapView addAnnotation:annotation];
}
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MapAnnotation class]]) {
static NSString *reuseIdentifier = @"MyMKPinAnnotationView";
MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:reuseIdentifier];
if (!annotationView) {
annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
annotationView.pinColor = MKPinAnnotationColorRed;
annotationView.enabled = YES;
annotationView.canShowCallout = YES;
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
} else {
annotationView.annotation = annotation;
}
}
return nil;
}
注意,標題&字幕可以顯示。
在此先感謝。
您的'viewForAnnotation'沒有返回'annotationView'。所以一定要返回它(如果它返回'nil',默認行爲將發生,無論你的所有工作如何)。看到我修改後的答案。 – Rob