-1

私は現在、ゼロから始まり、指定した数までカウントアップするラベルを表示するアプリに取り組んでいます。このような単純なループを使用してこれを実行したかったのです。

  for (counterInt = 0; counterInt < 10; counterInt++) 
    {
        NSLog(@"%i",counterInt); 
    }

問題は、このループが、ビューが画面に表示されるのにかかる時間よりも短い時間で実行されることです。ビューが最終的に9を示すラベルでロードされる前に、コンソールは1〜9をログに記録します。ループの期間を指定する方法を見つけるために数時間調査してきましたが、これについて何も見つからないようです。 。

だから私の全体的な質問は、ループの実行にかかる時間を指定することは可能ですか?もしそうなら、誰かが私をここで正しい方向に向けることができれば、それは大いにありがたいです!

4

3 に答える 3

7

ループを遅くしても、まだ機能しません。UI 要素は、実行ループの最後にのみ更新されます。タイマーを設定し、タイマーによって起動されるメソッドでラベルを更新 する必要があります。

于 2012-05-31T21:27:10.473 に答える
4

間違ったアプローチを使用しています。NSTimerを試してください。

[NSTimer scheduledTimerWithTimeInterval:5.0
    target:self
    selector:@selector(incrementLabel:)
    userInfo:nil
    repeats:YES];

次に、incrementLabelというメソッドを作成し、インスタンス変数をインクリメントして、それに応じてラベルを更新します。

于 2012-05-31T21:30:09.897 に答える
1

あなたはスレッドを眠ることができます:

[NSThread sleepForTimeInterval:1];

ただし、jrturtonとjamesは正しいアプローチを提供します。JamesのコードをviewDidAppearメソッドに配置して、ラベルが目的の場所から始まり、ビューが表示されたときにカウンターが始まるようにします。

于 2012-05-31T21:38:52.660 に答える