动画块 - 完成立即触发

时间:2012-06-06 18:38:16

标签: ios animation uiview uiviewcontroller

为什么以下代码会在触发后立即记录'完成'?

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

2 个答案:

答案 0 :(得分:8)

因为你实际上并没有动画任何东西(NSLog不能动画)。您需要为对象设置动画,否则将立即调用完成块。如果没有动画,则将忽略0.3秒的持续时间。

答案 1 :(得分:3)

因为你没有动画任何东西。如果你改变动画块中某些UIView的值,你将正确地看到"完成"在0.3秒延迟后输出。

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