ラベルを更新する NSTimer を使用してタイマーをコーディングしました。問題は、同じviewcontrollerにuitableviewがあり、それを下にスクロールすると、タイマーがその値を更新しないため、ユーザーが「チート」してタイマーを停止できることです。
これは、CGD を使用したシリアル キューで簡単に修正できると思いますが、その方法がわかりません。
前もって感謝します、
ファン
ラベルを更新する NSTimer を使用してタイマーをコーディングしました。問題は、同じviewcontrollerにuitableviewがあり、それを下にスクロールすると、タイマーがその値を更新しないため、ユーザーが「チート」してタイマーを停止できることです。
これは、CGD を使用したシリアル キューで簡単に修正できると思いますが、その方法がわかりません。
前もって感謝します、
ファン
まず、メイン スレッド以外のスレッドでは UI の変更を実行できないことに注意してください。そうは言っても、メイン キューで を起動する必要がありNSTimer
ます。そうしないと、 を変更したときにプログラムがクラッシュしUILabel
ます。このリンクhttp://bynomial.com/blog/?p=67とこれhttp://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSRunLoop_Class/をご覧くださいリファレンス/Reference.html
私の知る限り、 for でタイマーをスケジュールすると、NSRunLoopCommonModes
イベントの更新が無視され、希望どおりにタイマー jsut が起動します。
NSTimer *timer = [NSTimer timerWithTimeInterval:1.0
target:self
selector:@selector(timerDidTick:)
userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
-(void) timerDidTick:(NSTimer*) theTimer{
[[self myLabel] setText:@"Timer ticked!"];
}