我在MKMapView上使用MKPinAnnotationView,标题和副标题正常显示,但是rightCalloutAccessoryView
没有显示。
我尝试了很多谷歌搜索,但还没有解决。我的代码如下:
- (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