NSTimer によって起動されたメイン ウィンドウに OpenGL アニメーションを描画しています。スクロール可能な UITableView メニューを含むポップオーバー ウィンドウを表示すると、スクロール中にアニメーションがフリーズします。スクロール アニメーションが停止すると、タイマー コールバックが再び開始されます。メイン ウィンドウの更新が停止するのは、ユーザーが積極的にスクロールしようとしたときだけです。
Apple のスクロール アニメーションが何らかの形でメイン ループのディスパッチをブロックしているようです。これは本当ですか、それを修正する方法はありますか?
コードの複雑さが指数関数的に増加するため、できることならマルチスレッドを導入したくありません。
また、NSTimer の代わりに CADisplayLink を使用してみましたが、表示リンクの呼び出しもスクロール アニメーションによってブロックされます。