ios - dispatch_after 和 [UIView 动画 : duration] happen immediately (but shouldn't)

标签 ios uiview ios7 grand-central-dispatch

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

它不会立即开始,但进入游戏约 30 秒到约 2 分钟后,所有动画和 dispatch_after 命令都会立即发生。

更具体地说,动画正在发生,就好像“持续时间:”值是 0,即使它绝对不是 0。 更具体地说,dispatch_after 就像 wait = 0 一样发生。

一旦启动,它就会一直存在,直到软件终止。

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

最佳答案

问题是您认为您的完成 block 被过早调用了吗?

如果是这样,您是否检查过传递到完成 block 中的 bool 值的值?如果 bool 值为真,您可能只想执行该 block 中的语句。

例如

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

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

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

关于ios - dispatch_after 和 [UIView 动画 : duration] happen immediately (but shouldn't),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19106061/

相关文章:

ios - 使用NSNumberFormatter格式化小数

ios - 生成随机颜色并将其分配给对象

ios - 离开圆线的角半径

ios - 为什么我的自定义 View 没有出现在模拟器中

ios7 - 在 iOS 7 上获取设备序列号

ios - 为什么即使配置文件设置为分发,xcode 也会抛出此错误?

ios - NSURLRequest:如何处理重定向的帖子?

ios - 无法从 SuperView 中删除自定义 UIView

uiview - 嵌套闭包不喜欢参数列表

ios - 涉及多个 View Controller ,如何将值发送回启动 View Controller ?