trucos hobba hevvo hartico habtium habbo fantasy creditos comandos ios annotations uibutton mkmapview callout

hobba - iOS distingue entre qué accesorio de llamada se toca



hartico (1)

En las anotaciones de mi mapa, tengo un UIButton como cada vista de accesorio en las llamadas. En el - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control método de - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control , ¿cómo - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control qué vista de accesorio se tocó para manejar cada uno de los eventos? Aquí está mi código:

-(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]; } }


En lugar de establecer y usar etiquetas, puede verificar si el control es la vista de accesorios izquierda o derecha:

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