48

UILabel2秒後にテキストを変更したい。

UILabelのテキストを「Aテキスト」に設定して、使用sleep(2)して最終的に「別のテキスト」に変更してみました。

ただしsleep(2)、アプリをフリーズするだけで、「Aテキスト」を2秒間表示せずに「別のテキスト」が設定されます。

「Aテキスト」を2秒間表示してから、「別のテキスト」を表示するにはどうすればよいですか?

4

8 に答える 8

44

使用できます

[self performSelector:@selector(changeText:) withObject:text afterDelay:2.0];

または、定期的に表示したい場合は、NSTimerクラスを確認してください。

于 2011-08-08T14:15:23.473 に答える
12

NSTimer次のように使用できます-

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

別のメソッドを定義updateLabelし、そこで更新を行います。ニーズに合わせて timeInterval を定義します...

また、 に設定repeatsするYESと、このセレクターが 0.5 秒ごとに実行されるようになります (上記の場合)。

于 2011-08-08T14:14:38.737 に答える
5

これはタイマーで実現できます。

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(eventToFire:) userInfo:nil repeats:YES]; // Fire every 4 seconds.
   
...

- (void)eventToFire:(NSTimer*)timer {
  // Do Something
}
于 2011-08-08T14:14:12.190 に答える
2

これは、実行ループが終了するまでビューが更新されないためです。スリープを使用する代わりに、NSTimer を使用してビューを更新する特定の時間を設定してみてください。

于 2011-08-08T14:14:40.260 に答える
2

タイマーを使用する必要があります。sleep を使用すると、プログラム全体が停止します。NSTimer を確認する

于 2011-08-08T14:14:47.177 に答える