Luc*_*Luc 0 iphone mkmapview ios
我有一个包含MKMapView的视图,我在其中显示了sereval引脚:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但方法:
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
Run Code Online (Sandbox Code Playgroud)
单击引脚时不会调用.似乎点击事件没有传输到引脚,但我无法弄清楚原因.任何的想法 ?
小智 6
单击引脚本身时,地图视图将调用委托方法mapView:didSelectAnnotationView:.
calloutAccessoryControlTapped在注释视图leftCalloutAccessoryView或被rightCalloutAccessoryView点击时调用该方法.这些是引脚标注上显示的控件(通常是按钮).
听起来你正在寻找mapView:didSelectAnnotationView:委托方法.
| 归档时间: |
|
| 查看次数: |
2858 次 |
| 最近记录: |