UIView 动画块不等待

发布于 2024-11-15 08:43:27 字数 442 浏览 3 评论 0原文

我有这样的代码:

[UIView animateWithDuration:0.8
                             animations:^{ 
                                 [self methodToRun];
                             } 
                             completion:^(BOOL finished){
                                 [self anotherMethod];
                             }];

虽然 methodToRun 中有一些东西,但应用程序只是不等待 0.8 秒并继续运行 anotherMethod。有什么方法可以让我在运行第二位之前等待 0.8 秒吗?

I have this code:

[UIView animateWithDuration:0.8
                             animations:^{ 
                                 [self methodToRun];
                             } 
                             completion:^(BOOL finished){
                                 [self anotherMethod];
                             }];

Although there's things in methodToRun, the app just doesn't wait the 0.8 seconds and proceeds to run anotherMethod. Is there any way I can simply just get to wait 0.8 seconds before running the second bit?

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

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

发布评论

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

评论(2

哽咽笑 2024-11-22 08:43:27

不要滥用这样的动画块。如果您确实想要延迟,请使用 Ken 链接的方法,甚至更简单的方法是使用 GCD (iOS 4+)。

这是一个使用 0.8 延迟的示例,就像您在问题中使用的那样:

dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 0.8); 
dispatch_after(delay, dispatch_get_main_queue(), ^(void){
    [self anotherMethod];
});

Don't misuse an animation block like that. If you really want a delay, use the method Ken linked to or even an easier way is to use GCD (iOS 4+).

Here's an example using a delay of 0.8 like you used in your question:

dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 0.8); 
dispatch_after(delay, dispatch_get_main_queue(), ^(void){
    [self anotherMethod];
});
葬心 2024-11-22 08:43:27

您可以添加对 [NSTimer PerformSelector:withObject:afterDelay] 的调用,而不是依赖于完成参数。

You could add a call to [NSTimer performSelector:withObject:afterDelay] instead of relying on the completion parameter.

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