calloutAccessoryControlTapped不是在故事板
问题描述:
我有含有的MKMapView的视图调用,我在它显示sereval引脚:calloutAccessoryControlTapped不是在故事板
- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
NSLog(@"mapView:viewForAnnotation");
// if it's the user location, just return nil.
if ([annotation isKindOfClass:[MKUserLocation class]]){
return nil;
}
static NSString* AnnotationIdentifier = @"AnnotationIdentifier";
MKPinAnnotationView *pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier];
pinView.canShowCallout = YES;
pinView.pinColor = MKPinAnnotationColorPurple;
pinView.annotation = annotation;
return pinView;
}
这是工作正常,但该方法:
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
不叫当引脚被点击。看起来点击事件不会传输到引脚,但我无法弄清楚为什么。任何想法 ?
答
单击引脚本身时,地图视图将调用代理方法mapView:didSelectAnnotationView:
。
当点击注解视图的leftCalloutAccessoryView
或rightCalloutAccessoryView
时将调用calloutAccessoryControlTapped
方法。这些是出现在引脚标注上的控件(通常是按钮)。
这听起来像是您正在寻找mapView:didSelectAnnotationView:
委托方法。
谢谢安娜,你说得对。最重要的是,我在注释中出现了另一个错误(标题为空)。 – Luc 2012-08-03 22:02:45
右键 - 但如果左侧和右侧配件视图均为NULL,则整个气泡都会点击 – Moose 2016-03-24 17:03:50