UILabel
2秒後にテキストを変更したい。
UILabel
のテキストを「Aテキスト」に設定して、使用sleep(2)
して最終的に「別のテキスト」に変更してみました。
ただしsleep(2)
、アプリをフリーズするだけで、「Aテキスト」を2秒間表示せずに「別のテキスト」が設定されます。
「Aテキスト」を2秒間表示してから、「別のテキスト」を表示するにはどうすればよいですか?
UILabel
2秒後にテキストを変更したい。
UILabel
のテキストを「Aテキスト」に設定して、使用sleep(2)
して最終的に「別のテキスト」に変更してみました。
ただしsleep(2)
、アプリをフリーズするだけで、「Aテキスト」を2秒間表示せずに「別のテキスト」が設定されます。
「Aテキスト」を2秒間表示してから、「別のテキスト」を表示するにはどうすればよいですか?
使用できます
[self performSelector:@selector(changeText:) withObject:text afterDelay:2.0];
または、定期的に表示したい場合は、NSTimer
クラスを確認してください。
NSTimer
次のように使用できます-
[NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(updateLabel:)
userInfo:nil
repeats:YES];
別のメソッドを定義updateLabel
し、そこで更新を行います。ニーズに合わせて timeInterval を定義します...
また、 に設定repeats
するYES
と、このセレクターが 0.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
}
これは、実行ループが終了するまでビューが更新されないためです。スリープを使用する代わりに、NSTimer を使用してビューを更新する特定の時間を設定してみてください。
タイマーを使用する必要があります。sleep を使用すると、プログラム全体が停止します。NSTimer を確認する