0

私の iPhone アプリでは、単一のメソッドで実行される一連のコードがあります。メソッドの最後に、遅延が必要な行がいくつかあるので、それらは前に行った後にのみ実行されます。これは、アニメーションが進行中であるためです。アニメーションが完了したら、このコードを実行する必要があります。

NSTimer を使用できることはわかっていますが、もう少しエレガントでクリーンなものを試してみたいと思っていました。

4

3 に答える 3

0

アニメーションが終わった後でも遅延が必要な場合は、次のように 2 番目のプロセスを呼び出すことができます。

[self performSelector:<#(SEL)#> withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#>]
于 2013-01-15T18:45:26.833 に答える
0

最初のプロセスに使用できます:

– performSelector:onThread:withObject:waitUntilDone:

これにより、プロセスが完了するまでスレッドがブロックされます。

この後、次のステートメントの実行が開始されます。

于 2013-01-15T17:38:39.660 に答える
0

これを行う標準の (そして非常に便利な) iOS の方法は、コールバック ブロックです。簡単な UI アニメーションを考えてみましょう。

[UIView animateWithDuration:1
                 animations:^{
                   myView.alpha = 1; // fade-in myView
                 }
                 completion:^(BOOL finished){
                     // this code gets called when the animations block above is finished
                 }];

完了ブロックをパラメーターとして受け取る独自のメソッドを実装し、実行の最後に呼び出すことができます。これは、それを始めるためのApple のブロック チュートリアルです。

于 2013-01-15T17:44:27.820 に答える