У меня есть представление карты с большим количеством аннотаций (3000+), когда пользователь масштабируется до разумного уровня, все хорошо и быстро.
Хотя, когда пользователь масштабируется и появляется большой quanitiy аннотаций, происходит много замедления из-за того, что сразу отображается количество аннотаций. Каков наилучший способ справиться с этим?
Текущее решение, которое я использую:
- (void)mapView:(MKMapView *)_mapView regionDidChangeAnimated:(BOOL)animated {
NSArray *annotations = [_mapView annotations];
MapAnnotation *annotation = nil;
for (int i=0; i<[annotations count]; i++)
{
annotation = (MapAnnotation*)[annotations objectAtIndex:i];
if (_mapView.region.span.latitudeDelta > .010)
{
[[_mapView viewForAnnotation:annotation] setHidden:YES];
warningLabel.hidden = NO;
}
else {
[[_mapView viewForAnnotation:annotation] setHidden:NO];
warningLabel.hidden = YES;
}
}
}
Отлично работает, хотя из-за большого размера цикла это приводит к значительному замедлению при масштабировании и выводе и прокрутке. Кажется, я не думаю о более эффективном способе справиться с этим, есть ли способ только прокрутить отображаемые в настоящее время аннотации или что-то по этим линиям, чтобы уменьшить размер цикла?