2012-06-06 38 views
2

为什么下面的代码日志“完成”只要它被触发?动画块 - 完成将立即触发

[UIView animateWithDuration:0.3 
       animations:^{ 
         NSLog(@"Start"); 
       } 
       completion:^(BOOL finished){ 
        NSLog(@"done"); 
       } 
]; 
+0

可能是因为动画块中没有动画。 – scord

回答

8

因为你没有真正动画做(的NSLog不能动画)。您需要动画化对象,否则将立即调用完成块。如果没有任何动画,0.3秒的持续时间将被忽略。

+0

好吧,我正在改变一些事情,并发生同样的事情。 – Morkrom

3

因为你不是动画任何东西。如果您更改动画块中某个UIView的值,您将在0.3秒延迟后正确地看到“完成”输出。

我使用5秒的延迟测试了您的代码,只添加了一些动画来确认。

+0

好的,如果你正在改变视图的价值并且...会发生同样的现象? – Morkrom