私のアプリには、比較的高価な画面の再描画があります。元の形式では、UIScrollview の最小ズームを 100% に設定し、最大ズームを 400% のスケーリングに設定し、scrollViewDidEndZooming で画面を再描画しました。
私たちのテスターは、ユーザーが最小ズーム レベルまたは最大ズーム レベルを超えてピンチし続けると、コストのかかる再描画がバックグラウンドで発生しているため、画面がまだ点滅するというバグを書き留めました。
スケーリングが実際に変更されたかどうかを (scrollViewDidEndZooming で) チェックすることでこれを修正しようとし、変更された場合にのみコンテンツの更新を行いました。
ただし、これにより新しい問題が発生しました。ユーザーが (たとえば) 100% で開始し、1 つのジェスチャで 400% までピンチし、その後 100% に戻ると、コンテンツが少しぼやけてしまいます。これは、私の最適化では、スケーリングが 100% で開始および終了したため、「変更されていない」と見なされるためです。しかし実際には、ビューが拡大縮小されるため、ぼやけが生じます。
通常、ビューがこれらの遷移スケーリングを通過したときにフラグなどを設定するだけですが、 UIScrollView はそのようなフックを提供していないように見えます-スクロールを開始および終了するためのフックのみです。
私がやろうとしていることを達成する方法はありますか?自分のジェスチャ認識エンジンをロールアップし、UIScrollview のものを放棄する以外に、やり過ぎに思える方法はありますか?
編集:他の人がこれに遭遇していないことに驚いています(または、少なくとも対処方法について応答していません)。比較的高価な再描画を行うアプリは、「前」の動作または「後」の動作のいずれかに遭遇するようですが、どちらも高価な再描画の状況では理想的ではありません。考え?