0
如何在按下动态按钮时调用下面的方法?如何在按下按钮时调用此方法
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
如何在按下动态按钮时调用下面的方法?如何在按下按钮时调用此方法
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view
calloutAccessoryControlTapped:(UIControl *)control
这是地图视图的委托方法,因此您的代码不会直接调用它。当点击注解视图的rightCalloutAccessoryView或leftCalloutAccessoryView时,地图视图会调用该方法。
创建地图视图时,设置其委托属性并在viewForAnnotation方法中创建一个按钮并将其设置为rightCalloutAccessoryView或leftCalloutAccessoryView。
例如:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
static NSString *annotationIdentifier = @"annot";
MKPinAnnotationView *pav = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:annotationIdentifier];
if (!pav)
{
pav = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationIdentifier] autorelease];
pav.canShowCallout = YES;
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pav.rightCalloutAccessoryView = rightButton;
}
else {
pav.annotation = annotation;
}
return pav;
}
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
//handle tap on annotation...
}