ディスパッチャ ソース タイマーを使用して、異なるフレーム レートでビューを更新しています。(8、12、または 24 FPS)
これは、dispatcherTimer を初期化するコードと、タイマーの作成に使用される関数です。
 (この関数は、「タイマーの作成」サブセクションの Apple ドキュメントから直接取得されます: http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/GCDWorkQueues/GCDWorkQueues.html )  
電話:
    self.dispatchTimer = [self createDispatchTimerWithInterval:self.project.frameDuration * NSEC_PER_SEC
                                                    leeway:0.0 * NSEC_PER_SEC
                                                     queue:dispatch_get_main_queue()
                                                     block:displayFrame];
関数:
- (dispatch_source_t)createDispatchTimerWithInterval:(uint64_t)interval leeway:(uint64_t)leeway queue:(dispatch_queue_t)queue block:(dispatch_block_t)block {
    dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,
                                                 0, 0, queue);
    if (timer) {
        dispatch_source_set_timer(timer, dispatch_walltime(NULL, 0), interval, leeway);
        dispatch_source_set_event_handler(timer, block);
        dispatch_resume(timer);
    }
    return timer;
}
ビューは完全に更新されますが、タッチ イベントがキャッチされません。私の最初の賭けは、frameDuration を 0.5 秒程度に減らすと、タッチ イベントがキャッチされるため、ブロック「displayFrame」の処理時間がかかりすぎることです。
これは、iPad 2 を搭載した iOS 4 でのみテストしました。
どんな助けやヒントも大歓迎です!
エティエンヌ
アップデート
Apple 開発者フォーラムで同様の質問をしました。ここに回答があります: https://devforums.apple.com/thread/156633?tstart=0