dispatch_after和[UIView animation:duration]立即发生(但不应该)

sam*_*art 6 uiview grand-central-dispatch ios ios7

在iOS7中,我们遇到了间歇性的错误.iOS6没有发生这种情况.

它不会马上开始,但游戏中约30秒到2分钟,所有动画和dispatch_after命令都会瞬间发生.

更具体地说,动画正在发生,好像"duration:"值为0,即使它绝对不是0.更具体地说,dispatch_after正好像wait = 0一样发生.

一旦启动,它将一直存在,直到软件终止.

我不知道如何调试它,或者它是否是iOS7错误.任何虽然/帮助将不胜感激!

Sam*_*Sam 1

您认为您的完成块被过早调用的问题是什么?

如果是这样,您是否检查了传递到完成块中的布尔值的值?您可能只想在布尔值为 true 时执行该块中的语句。

例如

[UIView animateWithDuration... animations:^{
    //do something
} completion:^(BOOL finished) {
    if (finished) {
        // do something
    }
}];
Run Code Online (Sandbox Code Playgroud)

我在动画开始之前调用完成块时看到了这一点,但实际上是因为其他东西取消了动画,因此finished = NO.

这并没有回答有关的问题dispatch_after,因此您可能仍然遇到错误。