为什么这不起作用?
[UIView animateWithDuration:0 delay:3 options:0 animations:^(void) {
NSLog(@"after duration, please!");
} completion:nil];
NSLog
立即开火。
我不是在寻找解决方法(有很多),而是想知道为什么会这样。
答案 0 :(得分:3)
核心动画的中间帧实际上发生在另一个后台线程中。通常会立即创建动画的第一帧和最后一帧。因此,NSLog可以在主UI线程中触发,而无需等待或甚至不知道正在进行的任何背景动画。