2012-01-13 3 views

답변

5

MKMapViewannotationsInMapRect: 방법은 당신에게 주어진 맵 RECT에 주석 세트를 제공 할 것입니다.

현재 보이는 것을 가져 오려면지도보기의 visibleMapRect 속성을 전달합니다.

는에서 줌 후 볼 수 있습니다 어떤 주석 감지 축소, 또는 팬은 regionDidChangeAnimated 대리자 메서드에서 해당 메서드를 호출하려면 :

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated 
{ 
    NSSet *annSet = [mapView annotationsInMapRect:mapView.visibleMapRect]; 
    NSLog(@"regionDidChangeAnimated: annSet count = %d", annSet.count); 
} 
+0

+1 내가 필요 정확히 무엇을 구현하기 우아한. – Nerrolken

0

제 다음 위임 방법에 의해 계산 될 수

- (MKAnnotationView *)지도보기 (MKMapView *) mapView1 viewForAnnotation (ID) 주석

{

카운트 ++ NSLog (@ "개수 : % d", 개수);

}

0

당신이 하위 뷰를 같은지도보기와의 ViewController가 가정.

- (void)someMethod 
{ 
    NSArray *visibleAnnotations = [[self.mapView annotationsInMapRect:self.mapView.visibleMapRect] allObjects]; 
    NSUInteger VisibleAnnotationCounts = visibleAnnotations.count; 
... 
} 

는 또한 적절한 MKMapView 위임 방법에

{ 
... 
    NSArray *visibleAnnotations = [[mapView annotationsInMapRect:mapView.visibleMapRect] allObjects]; 
    NSUInteger VisibleAnnotationCounts = visibleAnnotations.count; 
... 
} 
관련 문제