2012-05-11 1 views
5

ユーザーがテーブルをスクロールしてNSTimerが遅れるのを防ぐにはどうすればよいですか?iOS 5のユーザーインターフェイス操作でNSTimerが遅延または中断するのを防ぐ方法

私は答えを見つけた:

私は0.4〜0.8秒の間隔で約8または9回繰り返しタイマーを持っていました。多くの精度は必要ありませんが、ユーザーがテーブルをスクロールすると、テーブルがスクロールするまでタイマーが機能しなくなります(これは数秒待つことができます)。私はバックグラウンドスレッドが必要だと思っていましたが、バックグラウンドスレッドのタイマーはやや複雑でした。

私の問題に対する答えは非常に簡単で簡単でした。私は、タイマーを起動した後に行を追加する必要があります。

//////////// start the timer 

self.playingTimer = [NSTimer scheduledTimerWithTimeInterval:tempo target:self selector:@selector(playSoundFromArray:) userInfo:nil repeats:YES]; 

//////////// the magic line: 

[[NSRunLoop currentRunLoop] addTimer:self.playingTimer forMode:UITrackingRunLoopMode]; 

今、私は同じくらい私がしたいと私のタイマーはOK仕事としてテーブルをスクロールすることができます!

は今、私はあなたがNSDefaultRunLoopModeモードのためのあなたのタイマーを追加する必要があります

+0

質問フォームに実際に投稿し、自分の質問に答えてください。 –

+0

最初の段落を削除し、2番目の文の最初の2つの文を質問に含めます。残りの人は答えに行く。私は両方をupvoteしたい。 –

+0

提案していただきありがとうございます。ここは私の最初の港です。私は約8時間で私自身の質問に答えることができません... – alvira

答えて

1

...もう少しNSRunLoopを勉強する必要があります。 UITrackingRunLoopModeはUIアクション(あなたの場合はスクロール)を追跡することによって使用されます。

関連する問題