Domanda

Di recente ho trovato questo sito web e ho provato ad aggiungere alla mia chiamata un pulsante (da un'immagine).

Il codice nell'esempio dei siti Web funziona perfettamente, ma quando ho provato ad aggiungere lo stesso codice al mio progetto non ottengo gli stessi risultati.

C'è ovviamente qualcosa che mi è sfuggito, ma non riesco a risolverlo!

Ecco il mio codice per l'annotazione:

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{
    MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
    annView.pinColor = MKPinAnnotationColorGreen;

    UIButton *advertButton = [UIButton buttonWithType:UIButtonTypeCustom];
    advertButton.frame = CGRectMake(0, 0, 23, 23);
    advertButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    advertButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

    [advertButton setImage:[UIImage imageNamed:@"button_right.png"] forState:UIControlStateNormal];
    [advertButton addTarget:self action:@selector(showLinks:) forControlEvents:UIControlEventTouchUpInside];

    annView.rightCalloutAccessoryView = advertButton;

    annView.animatesDrop=TRUE;
    annView.canShowCallout = YES;
    annView.calloutOffset = CGPointMake(-5, 5);
    return annView;
}

Qualsiasi aiuto sarebbe apprezzato! :)

È stato utile?

Soluzione 3

Mi dispiace rispondere alla mia domanda, ma questo è stato risolto impostando il delegato di MKMapView su ViewController. Accidenti, mi ci è voluto un po 'per capirlo ed è così semplice !!

Altri suggerimenti

Quel ragazzo sta usando un'immagine personalizzata per imitare la divulgazione dei dettagli. Puoi effettivamente ottenere la divulgazione di dettagli standard abbastanza facilmente:

[UIButton buttonWithType:UIButtonTypeDetailDisclosure];

Invece di impostare l'obiettivo come hai fatto qui:

[advertButton addTarget:self action:@selector(showLinks:) forControlEvents:UIControlEventTouchUpInside];

È possibile utilizzare il delegato predefinito:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top