私は次の状況にあります(iPad、iOS 5.1でテスト):
- 内部にUINavigationControllerを備えたUIPopoverControllerと、カスタムポップオーバー背景ビュー(UIPopoverBackgroundViewのサブクラス)があります。
- ナビゲーションコントローラーのルートVCとして、汎用UIViewController(これをVC1と呼びます)があります。
- ナビゲーションコントローラースタックのUITableViewで別のUIViewController(VC2)をプッシュします。
効果:テーブルのスクロールが途切れる(10〜15 fpsのように見える)。テストの目的で、画像などを使用せずに可能な限り単純なUITableViewを使用しているため、UITableViewの実装が不適切なことが原因ではありません。
- VC2がナビゲーションコントローラーのルートビューコントローラーである場合、カスタムのポップオーバーの背景があっても、スクロールが途切れることはありません。
- また、2番目のVCとしてプッシュしても途切れることはありませんが、UIPopoverControllerにカスタムbgビュークラスを使用していません。
UIPopoverBackgroundViewサブクラス内のオーバーライドされた各メソッドをログに記録しますが、それらは常に呼び出されることはなく、理論的にはパフォーマンスに影響を与える可能性があります。問題をさらにデバッグしますが、誰かが以前にすでに問題を解決している可能性がありますか?
または、誰かが犯人を見つける方法について良い提案をしているのでしょうか?不快な関数呼び出しのタイムプロファイラーを調べてみましたが、あまり見つかりませんでした...