为什么以下代码会在触发后立即记录'完成'?
[UIView animateWithDuration:0.3
animations:^{
NSLog(@"Start");
}
completion:^(BOOL finished){
NSLog(@"done");
}
];
答案 0 :(得分:8)
因为你实际上并没有动画任何东西(NSLog不能动画)。您需要为对象设置动画,否则将立即调用完成块。如果没有动画,则将忽略0.3秒的持续时间。
答案 1 :(得分:3)
因为你没有动画任何东西。如果你改变动画块中某些UIView的值,你将正确地看到"完成"在0.3秒延迟后输出。
我使用完全正确的代码进行了5秒的延迟测试,只添加了一些动画来确认。