多くのWWDCビデオで、よりスムーズなスクロール体験を得るために、できるだけ60.0FPSを達成したいと言っています。画像といくつかのテーブルビューを一度にロードするUIScrolLViewがあります。現在、30FPSを取得しています。これは、推奨されるFPSの半分です。画像やその他の重いもの/レンダリングのものをロードするテーブルビュー/スクロールビューで、通常どのFPSが得られるのか疑問に思っています。
FPSを最適化するための他のヒントはありますか?私はこの1週間、タイムプロファイラー、割り当て、コアアニメーションツールを使用してInstrumentsを起動し、可能な限り最適化することに費やしました。
私が持っているものを少し明確にするためだけに。iPadに石積み/滝/ピンタレストスタイルのレイアウトがあります。したがって、これは通常のUITableViewだけではありません。これは、画面全体を埋めるUIScrollViewであり、いくつかのUIViewで埋められます。この各ビューには、150x150のUIImageViewとUITableViewがあり、CoreTextを使用して描画された属性付きのラベルもあります。したがって、画面を見ると一目で5〜8個のテーブルビューを一度に確認できます。各セルには再びUIImageViewがあり、各セルはコアテキストを使用して描画された属性付きラベルをレンダリングします。
したがって、これがどれほど深く複雑であるかを想像することができます。これは、UIImageViewを使用した通常のテーブルビューだけではありません。UIImageを備えたiPhoneで1つのUITableViewだけで60FPSを取得する方法を知っています。コンセプトは、画像を非同期でロードし、メインスレッドをできるだけブロックしないことです。
編集:
ここでの問題は、ビュー内にあるUITableViewにあるようです。UIViewからそれを削除すると、非常にスムーズなスクロールが得られます。
私が持っているもののより単純なバージョンであるサンプルプロジェクトをアップロードしましたが、それは明らかに問題を示しています。リンクはこちら