2010-12-06 7 views
1

これはなぜ機能しませんか?UIViewアニメーションは遅延を考慮しませんか?

[UIView animateWithDuration:0 delay:3 options:0 animations:^(void) { 
    NSLog(@"after duration, please!"); 
} completion:nil]; 

NSLogはすぐに発火します。

私は回避策(多くはあります)を探しているのではなく、なぜこのようになるのだろうと思っています。

答えて

3

コアアニメーションの中間フレームは、実際に別のバックグラウンドスレッドで発生しています。アニメーションの最初と最後のフレームは、しばしばすぐに作成されます。したがって、NSLogは、進行中のバックグラウンドアニメーションについて待ったり、知ることなく、メインのUIスレッドで起動することができます。

+0

興味深い回答です。ありがとう... –

関連する問題