2010-02-09 16 views
6

Usar un MKMapView Tengo un montón de anotaciones cargadas en él y quiero poder filtrar las anotaciones que se muestran con un control segmentado.Ocultar anotaciones de mapa sin eliminarlas

Estoy usando anotaciones personalizadas con una variable de tipo, por lo que puedo diferenciarlas entre sí, pero no he podido encontrar la forma de ocultar y mostrar un subconjunto de vistas de anotación a voluntad.

Respuesta

8

Claro, intente esto:

solución de Objective-C:

[[yourMapView viewForAnnotation:yourAnnotation] setHidden:YES] 

Swift 4 solución:

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

Esto le devolverá la vista asociada con la especificada objeto de anotación, entonces puede configurar la vista como oculta. Aquí está el documentation.

+0

Gracias por eso, funcionaba un lujo. Perdón por no volver a esto antes. – Affian

+0

np ... Me alegra ayudar! –

+0

¿Cuándo filtrar es mejor ocultar la anotación o eliminarla? – lostintranslation

0

si desea ocultar el MKAnnotationView (burbuja) puede crear uno personalizado:

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

} 
Cuestiones relacionadas