UIView 动画块不等待
我有这样的代码:
[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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要滥用这样的动画块。如果您确实想要延迟,请使用 Ken 链接的方法,甚至更简单的方法是使用 GCD (iOS 4+)。
这是一个使用
0.8
延迟的示例,就像您在问题中使用的那样: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:您可以添加对
[NSTimer PerformSelector:withObject:afterDelay]
的调用,而不是依赖于完成参数。You could add a call to
[NSTimer performSelector:withObject:afterDelay]
instead of relying on the completion parameter.