5

私はこのコードを持っています:

[UIView animateWithDuration:0.8
                             animations:^{ 
                                 [self methodToRun];
                             } 
                             completion:^(BOOL finished){
                                 [self anotherMethod];
                             }];

methodToRunにはいくつかの機能がありますが、アプリは0.8秒待機せず、anotherMethodの実行に進みます。2番目のビットを実行する前に0.8秒待つだけの方法はありますか?

4

2 に答える 2

9

そのようなアニメーションブロックを誤用しないでください。本当に遅延が必要な場合は、Kenがリンクしている方法を使用するか、GCD(iOS 4以降)を使用するのがさらに簡単な方法です。

0.8質問で使用したような遅延を使用した例を次に示します。

dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 0.8); 
dispatch_after(delay, dispatch_get_main_queue(), ^(void){
    [self anotherMethod];
});
于 2011-06-13T17:44:21.520 に答える
4

[NSTimer performSelector:withObject:afterDelay]完了パラメーターに依存する代わりに、 への呼び出しを追加できます。

于 2011-06-13T17:35:47.773 に答える