Пользовательские аннотации MapView

Я пытаюсь создать пользовательскую аннотацию для карты. У меня проблема в том, что я не могу сделать так, чтобы аннотация падала одна за другой. Все штифты опускаются одновременно. Вот код делегата для didAddAnnotations. Можете ли вы помочь мне переписать код, чтобы я мог сделать так, чтобы пользовательские аннотации удалялись одна за другой... так же, как это происходит, когда мы используем аннотации по умолчанию. Заранее спасибо....!!!!

- (void) mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {

    CGRect visibleRect = [mapView annotationVisibleRect]; 

    for (MKAnnotationView *view in views) {
        CGRect endFrame = view.frame;

        CGRect startFrame = endFrame;
        startFrame.origin.y = visibleRect.origin.y - startFrame.size.height;
        view.frame = startFrame;

        [UIView beginAnimations:@"drop" context:NULL]; 
        [UIView setAnimationDuration:1];

        view.frame = endFrame;

        [UIView commitAnimations];
    } // end of for 
} // end of delegate

person bp581    schedule 26.01.2011    source источник


Ответы (1)


Вы можете добавить задержку, которая становится немного длиннее с каждой итерацией вашего цикла, например:

double delay = 0.0;
for (MKAnnotationView *view in views) {
    CGRect endFrame = view.frame;
    CGRect startFrame = endFrame;
    startFrame.origin.y = visibleRect.origin.y - startFrame.size.height;
    view.frame = startFrame;
    [UIView beginAnimations:@"drop" context:NULL];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationDelay:delay];
    view.frame = endFrame;
    [UIView commitAnimations];
    delay += 0.1;
}
person omz    schedule 26.01.2011