iOS区分哪个标注配件是轻拍的

在我的地图注释中,我有一个UIButton作为标注中的每个附件视图。 在- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control方法,我怎么知道哪个附件视图被处理过每个事件? 这是我的代码:

 -(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation { if ([annotation isKindOfClass:[MKUserLocation class]]) return nil; MKPinAnnotationView *MyPin=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"current"]; UIButton *calloutButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; UIButton *directionsButton = [UIButton buttonWithType:UIButtonTypeCustom]; directionsButton.frame = CGRectMake(0, 0, 23, 23); [directionsButton setBackgroundImage:[UIImage imageNamed:@"directions.png"] forState:UIControlStateNormal]; MyPin.leftCalloutAccessoryView = directionsButton; MyPin.rightCalloutAccessoryView = calloutButton; MyPin.draggable = NO; MyPin.highlighted = NO; MyPin.animatesDrop= YES; MyPin.canShowCallout = YES; MyPin.pinColor = MKPinAnnotationColorRed; return MyPin; } - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { Annotation *ann = view.annotation; if ([control tag] == 1) { CLLocationCoordinate2D currentCoords = {ann.coordinate.latitude, ann.coordinate.longitude}; MKPlacemark *place = [[MKPlacemark alloc] initWithCoordinate: currentCoords addressDictionary:nil]; MKMapItem *destination = [[MKMapItem alloc] initWithPlacemark: place]; destination.name = ann.title; destination.url = [NSURL URLWithString:@"http://www.wccca.com/PITS"]; NSArray *items = [[NSArray alloc] initWithObjects: destination, nil]; NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys: MKLaunchOptionsDirectionsModeDriving, MKLaunchOptionsDirectionsModeKey, nil]; [MKMapItem openMapsWithItems: items launchOptions: options]; } if ([control tag] == 2) { MKCoordinateRegion region; region.center.latitude = ann.coordinate.latitude; region.center.longitude = ann.coordinate.longitude; region.span.latitudeDelta = 0.02; region.span.longitudeDelta = 0.02; [self.mapView setRegion:region animated:YES]; } } 

而不是设置和使用标签,你可以检查是否左侧或右侧附件视图:

 if (control == view.leftCalloutAccessoryView) { //handle left control tap... } else if (control == view.rightCalloutAccessoryView) { //handle right control tap... }