Возможно ли ускорить падение аннотации в MKMapView? - PullRequest
1 голос
/ 01 июля 2011

У меня на карте что-то около 30 аннотаций, и я хочу ускорить анимацию отбрасывания.

Можно ли ускорить удаление аннотации в MKMapView или удалить все сразу?

1 Ответ

1 голос
/ 01 июля 2011

Вам необходимо реализовать собственную анимацию отбрасывания в методе делегата didAddAnnotationViews. Вам также следует установить animatesDrop на NO, чтобы избежать возможной двойной анимации.

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)annotationViews
{
    NSTimeInterval delayInterval = 0;

    for (MKAnnotationView *annView in annotationViews)
    {
        CGRect endFrame = annView.frame;

        annView.frame = CGRectOffset(endFrame, 0, -500);

        [UIView animateWithDuration:0.125 
                              delay:delayInterval
                            options:UIViewAnimationOptionAllowUserInteraction 
                         animations:^{ annView.frame = endFrame; } 
                         completion:NULL];

        delayInterval += 0.0625;
    }
}

При этом аннотации сбрасываются по указанной вами ставке.

Чтобы отбросить их все сразу, жестко закодируйте параметр delay в 0.0 вместо увеличивающегося delayInterval.

...