2013-04-02 10 views
18

Jestem nowym użytkownikiem koncepcji Map.Jak programowo wybrać szpilkę mapy?

Proszę odnaleźć załączony obraz jeden raz.

enter image description here

Kiedy klikam „pin” Dostaję komunikat mówi „Podziwiać swój uśmiech” lub dowolny tekst ..... Teraz chcę jak ... kiedy wybrać widok tabeli, muszę aby podnieść tę wiadomość dla tego pinezki (bez interakcji użytkownika z tym pinem) ...

Używam poniższego kodu do tych map i pinezek.

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

Teraz pokażę wszystkie szpilki jak poniżej.

enter image description here

Jak zrobić, gdy klikniemy na widoku tabeli muszę pokazać tytuł dla tego kołka jak pokażemy w jaki sposób, kiedy wybrać pin?

Dzięki z góry

+0

czy wspominałeś o widoku otworu z anotacją z niestandardowym obrazem/niestandardowym wyglądem pinezki na mapę? – Spynet

+0

Nie rozumiem? ... użyłem tego kodu, ale nie działa .. tj. CustomLocation.latitude = appdelegate.appDelegateLatitude; customLocation.longitude = appdelegate.appDelegateLongitude; MapViewAnnotation * newAnnotation = [[MapViewAnnotation alloc] initWithTitle: casesobjc.locationForMap_string andCoordinate: customLocation]; [mapView selectAnnotation: newAnnotation animated: YES]; @Spynet – Babul

+0

Po prostu podaj nazwę tytułu, gdy wybrany jest wiersz i ustaw tytuł adnotacji – krishh

Odpowiedz

25

metoda, która szukasz jest selectAnnotation:.

W swojej didSelectRowAtIndexPath trzeba znaleźć adnotację powiązaną z rzędem tabeli.

już znajdziesz to, można powiedzieć to, aby go wybrać za pomocą:

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

Myślę, że mam dość podobny problem. Czy mógłbyś mi pomóc zajrzeć do mojego [pytania] (http://stackoverflow.com/questions/28144466/how-to-select-map-pin-when-tapping-table-row-that-associates-with-it) również? Po prostu nie mogę zrozumieć, jak znaleźć adnotację związaną z wierszem tabeli. – SanitLee

0

Tak samo jak Objective C odpowiedź, w tableview masz listę adnotacji. W Swift w didSelectRow:

Dla 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) 

Krótkie i proste.

Powiązane problemy