MKAnnotations 的自定义引脚掉落动画

发布于 2024-10-25 06:42:41 字数 299 浏览 0 评论 0原文

有谁知道如何获得“连续”掉落效果?我使用了这个答案代码 但这会同时为所有注释添加动画效果。这些图钉不会像 MKPinAnnotation 项目使用的标准放置动画那样一次放置一个。

我还尝试添加对 [UIView setAnimationDelay:offset] 的调用,但这只会延迟整个块动画。

任何对此的想法将不胜感激。

Does anyone knows how to get that "sequential" drop effect? I used this answer's code
but that animates ALL annotations at once. The pins don't drop one at a time like the standard drop animation used with MKPinAnnotation items.

I also tried to add a call to [UIView setAnimationDelay:offset] but that just delays the entire block animation.

Any thoughts on this will be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光礼记 2024-11-01 06:42:41

这可能会帮助你开始

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
    static BOOL seeded = NO;
    if(!seeded)
    {
        seeded = YES;
        srandom(time(NULL));
    }

    MKAnnotationView *aV;
    for (aV in views) {
        if([aV isKindOfClass:[MKUserLocation class]]) continue;

        CGRect endFrame = aV.frame;

        aV.frame = CGRectMake(aV.frame.origin.x, aV.frame.origin.y, aV.frame.size.width/2, aV.frame.size.height/2);

        [UIView beginAnimations:nil context:NULL];

        CGFloat randTime = (CGFloat) random()/(CGFloat) RAND_MAX;
        [UIView setAnimationDuration:randTime];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [aV setFrame:endFrame];
        [UIView commitAnimations];


    }
}

this may help you get started

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views {
    static BOOL seeded = NO;
    if(!seeded)
    {
        seeded = YES;
        srandom(time(NULL));
    }

    MKAnnotationView *aV;
    for (aV in views) {
        if([aV isKindOfClass:[MKUserLocation class]]) continue;

        CGRect endFrame = aV.frame;

        aV.frame = CGRectMake(aV.frame.origin.x, aV.frame.origin.y, aV.frame.size.width/2, aV.frame.size.height/2);

        [UIView beginAnimations:nil context:NULL];

        CGFloat randTime = (CGFloat) random()/(CGFloat) RAND_MAX;
        [UIView setAnimationDuration:randTime];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [aV setFrame:endFrame];
        [UIView commitAnimations];


    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文