2010-02-09 30 views
6

Utilizzo di MKMapView Ho caricato un mucchio di annotazioni e voglio essere in grado di filtrare le annotazioni visualizzate con un controllo segmentato.Nascondere le annotazioni della mappa senza eliminarle

Sto usando annotazioni personalizzate con una variabile di tipo in modo che io possa distinguerle l'una dall'altra ma non sono stato in grado di trovare un modo per nascondere e visualizzare un sottoinsieme di viste di annotazione a piacere.

risposta

8

Certo, provate questo:

soluzione Objective-C:

[[yourMapView viewForAnnotation:yourAnnotation] setHidden:YES] 

Swift 4 soluzione:

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

Ciò restituirà la vista associata con la specificata oggetto di annotazione, quindi puoi impostare la vista su nascosto. Ecco lo documentation.

+0

Grazie per questo, ha funzionato a meraviglia. Scusa per non essere tornato prima. – Affian

+0

np ... Felice di aiutare! –

+0

Quando si filtra è meglio nascondere l'annotazione o rimuoverla? – lostintranslation

0

se si desidera nascondere la MKAnnotationView (bolla) è possibile creare uno personalizzato:

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

} 
Problemi correlati