为什么下面的代码日志“完成”只要它被触发?动画块 - 完成将立即触发
[UIView animateWithDuration:0.3
animations:^{
NSLog(@"Start");
}
completion:^(BOOL finished){
NSLog(@"done");
}
];
为什么下面的代码日志“完成”只要它被触发?动画块 - 完成将立即触发
[UIView animateWithDuration:0.3
animations:^{
NSLog(@"Start");
}
completion:^(BOOL finished){
NSLog(@"done");
}
];
因为你没有真正动画做(的NSLog不能动画)。您需要动画化对象,否则将立即调用完成块。如果没有任何动画,0.3秒的持续时间将被忽略。
好吧,我正在改变一些事情,并发生同样的事情。 – Morkrom
因为你不是动画任何东西。如果您更改动画块中某个UIView的值,您将在0.3秒延迟后正确地看到“完成”输出。
我使用5秒的延迟测试了您的代码,只添加了一些动画来确认。
好的,如果你正在改变视图的价值并且...会发生同样的现象? – Morkrom
可能是因为动画块中没有动画。 – scord