2010-02-09 12 views
6

Za pomocą MKMapView mam załadowany stos ładowań i chcę mieć możliwość filtrowania adnotacji wyświetlanych z segmentowanym sterowaniem.Ukrywanie adnotacji map bez ich usuwania

Używam niestandardowych adnotacji ze zmienną typu, więc mogę je odróżnić od siebie, ale nie jestem w stanie znaleźć sposobu na ukrycie i wyświetlenie podzbioru widoków adnotacji do woli.

Odpowiedz

8

Jasne, spróbuj tego:

Objective-C rozwiązanie:

[[yourMapView viewForAnnotation:yourAnnotation] setHidden:YES] 

Swift 4 rozwiązanie:

yourMapView.view(for: yourAnnotation)?.isHidden = true 

To będzie powrót do widoku skojarzonym z podanym obiekt adnotacji, możesz ustawić widok jako ukryty. Oto documentation.

+0

Dzięki za to, pracowała doskonale. Przepraszam, że nie wróciłem do tego wcześniej. – Affian

+0

np ... Cieszę się, że mogę pomóc! –

+0

Czy podczas filtrowania lepiej ukryć adnotację lub ją usunąć? – lostintranslation

0

jeśli chcesz ukryć MKAnnotationView (bubble) można utworzyć niestandardową:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation 
{ 

    if (annotation==self.map.mapView.userLocation) 
     return nil; 


    MKAnnotationView *annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"loc"]; 
    if([annotation isKindOfClass:[AnnotationCustomClass class]]) { 
     annotationView.canShowCallout = NO; // <- hide the bubble 

    } 

    return annotationView; 

} 
Powiązane problemy