iphone mapkit:引脚一个接一个地落下

时间:2010-08-02 04:39:30

标签: iphone mkmapview mkannotation

我正在使用mkmapview并将引脚放到它上面。我希望销钉一个接一个地落下,而不是同时落下。本来我打电话

[self performSelector:@selector(dropPin) withObject:nil afterDelay:dropTime];

其中dropTime是每个引脚的不同延迟,而dropPin是一种使引脚掉线的方法。不幸的是,这背后的多线程似乎会导致崩溃。

有没有人知道更好的方法?

1 个答案:

答案 0 :(得分:3)

如果您的目标是iOS4,则阻止是处理动画的绝佳方式,而不必担心代理,回调或选择器:

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
    if ([views count] == 0) {
        return;
    }
    MKAnnotationView *aV;
    for (aV in views) {
        // set up pin beginning and end frames, shadow subview frame and center

        [UIView animateWithDuration:0.75
                              delay:(0.0 + [views indexOfObject:aV]/10.0)
                            options:UIViewAnimationOptionCurveEaseOut
                         animations:^{
                             [aV setFrame:endFrame];
                             // animate the shadow subview's center point
                         }
                         completion:^ (BOOL finished) {
                            if (finished) {
                                // do something here when the animation finished
                            }
                         }];
}