2010-01-20 2 views
6

Как скрыть аннотацию при масштабировании вида карты. У меня есть большое количество аннотаций, которые я должен скрыть, потому что, если область, отображаемая на карте, слишком велика, вы можете видеть только аннотации.Скрыть, показать аннотацию на MkMapView

ответ

16

Для этого вам необходимо проверить размер своего региона, и в зависимости от этого вы задаете скрытые виды.

Я протестировал код, но вам, возможно, понадобятся некоторые корректировки.


- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated 
{ 
    NSArray *annotations = [_mapView annotations]; 
    MyAnnotation *annotation = nil; 
    for (int i=0; i<[annotations count]; i++) 
    { 
     annotation = (MyAnnotation*)[annotations objectAtIndex:i]; 
     if (_mapView.region.span.latitudeDelta > .010) 
     { 
      [[_mapView viewForAnnotation:annotation] setHidden:YES]; 
     } 
     else { 
      [[_mapView viewForAnnotation:annotation] setHidden:NO]; 
     } 
    } 
} 

Cheers,
VFN

+1

Спасибо за поддержку + 1 –

+0

+1. Это элегантно. – ComputerFellow

7

Swift версия:.

let annotations = self.maps.annotations 

    for annotation in annotations 
    { 
     if (self.maps.region.span.latitudeDelta > 0.010) 
     { 

      self.maps.viewForAnnotation(annotation)?.hidden = true 

     } 
     else { 

      self.maps.viewForAnnotation(annotation)?.hidden = false 

     } 
    } 
Смежные вопросы