1

マップに 30 個の注釈があり、ドロップ アニメーションを高速化したいと考えています。

MKMapView での注釈のドロップを高速化するか、一度にすべてをドロップすることは可能ですか?

4

1 に答える 1

1

didAddAnnotationViewsデリゲート メソッドで独自のドロップ アニメーションを実装する必要があります。また、二重アニメーションの可能性を回避するために を設定する必要がありますanimatesDropNO

- (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.0delayInterval

于 2011-07-01T15:12:00.557 に答える