2013-04-02 12 views
18

Sono nuovo di Maps Concept.Come selezionare un perno mappa a livello di programmazione

Si prega di trovare l'immagine allegata una volta.

enter image description here

quando clicco sul "pin" che sto ottenendo il messaggio dice: "Ammirate il tuo sorriso" o qualsiasi testo ..... Ora voglio come ... quando si seleziona la visualizzazione della tabella, ho bisogno per sollevare quel messaggio per quel pin (senza interazione utente per quel pin) ...

Sto usando sotto il codice per questa mappa e perni.

-(void) viewWillAppear:(BOOL)animated 
{ 
[super viewWillAppear:YES]; 
customLocation.latitude=[casesobjc.latitude_string doubleValue]; 
     customLocation.longitude=[casesobjc.longitude_string doubleValue]; 
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:casesobjc.locationForMap_string andCoordinate:customLocation]; 
[mapView addAnnotation:newAnnotation]; 
} 
- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation { 
MKPinAnnotationView *pin = (MKPinAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier: @"annotation_ID"]; 
if (pin == nil) { 
     pin = [[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"annotation_ID"]; 
    } else { 
     pin.annotation = annotation; 
    } 
    pin.pinColor = MKPinAnnotationColorPurple; 
    pin.animatesDrop = YES; 
    pin.canShowCallout=YES; 
return pin; 
} 

Ora mostrerò tutti i pin una volta come in basso.

enter image description here

Come fare quando si clicca su vista tabella ho bisogno di mostrare il titolo che il perno come come mostriamo quando si seleziona uno spillo?

Grazie in anticipo

+0

hai menzionato la vista di tocco di anotazione con visualizzazione di immagine personalizzata/pin mappa personalizzata? – Spynet

+0

non ho capito? ... ho usato questo codice ma non funziona .. ad es. CustomLocation.latitude = appdelegate.appDelegateLatitude; customLocation.longitude = appdelegate.appDelegateLongitude; MapViewAnnotation * newAnnotation = [[MapViewAnnotation alloc] initWithTitle: casesobjc.locationForMap_string eCoordinate: customLocation]; [mapView selectAnnotation: newAnnotation animated: YES]; @Spynet – Babul

+0

Basta passare il nome del titolo quando la riga è selezionata e impostare il titolo per l'annotazione – krishh

risposta

25

Il metodo che si sta cercando è selectAnnotation:.

Nel tuo didSelectRowAtIndexPath, devi trovare l'annotazione associata alla riga della tabella.

Una volta trovato, si può dire che, per selezionarlo utilizzando:

[mapView selectAnnotation:foundAnnotation animated:YES]; 
+0

Penso di avere un problema abbastanza simile. Potrebbe aiutarmi a dare un'occhiata alla mia [domanda] (http://stackoverflow.com/questions/28144466/how-to-select-map-pin-when-tapping-table-row-that-associate-with-it) anche? Non riesco proprio a capirlo soprattutto su come trovare l'annotazione associata alla riga della tabella. – SanitLee

0

Lo stesso come la risposta Objective C, nella vostra Tableview si dispone di un elenco di annotazioni. Nel Swift nel didSelectRow:

per SWIFT 4:

// annotations would be the array of annotations - change to your required data sets name 
let selectedAnnotation = annotations[indexPath.row] 
self.mapView.selectAnnotation(selectedAnnotation, animated: true) 

breve e semplice.