各セルにかなり大きな画像を読み込むuitableviewがあり、セルの高さは画像のサイズによって異なります。スクロールのパフォーマンスはまともですが、時々ぎくしゃくすることがあります。
FieryRobotブログで見つけた以下のヒントを見つけました。
glassy-scrolling-with-uitableview
more-glassy-scrolling-with-uitableview
UitableViewのスクロールパフォーマンスを改善するためのヒントはありますか?
UITableViewCell
のdrawRect:
にすべてを描画します。可能な限りサブビューを避けます(または、標準のアクセシビリティ機能が必要な場合は、コンテンツビューのdrawRect:
)UITableViewCell
のレイヤーを不透明にします(コンテンツビューがある場合は同じです)UITableView
の例/ドキュメントで推奨されているように、reusableCellIdentifier機能を使用しますUIImage
sにプリベイクされていないグラデーション/複雑なグラフィック効果を避けるUITableViewCell
をサブクラス化する場合は、ペン先を使用せず、代わりにコードで記述してください。 Nibファイルをロードするよりもはるかに高速です。Tweetieの背後にいる開発者は、これについて広範囲にわたって書いており、そのアプリでどのように行われたかを示すコードをいくつか持っています。基本的に、彼/彼女はテーブルセルごとに1つのカスタムビューを提唱し、手動で描画します(他のオプションの中でもInterface Builderでサブビューするのではなく)。
また、Appleは、TableViewSuiteチュートリアルでTableView用の独自のサンプルコードを更新しました(これに対する応答でしょうか?)
UITableViewスクロールの#1パフォーマンスキラーは、任意のセルビューレイヤーに影を描画するため、スクロールのパフォーマンスが重要な場合、基本的にメインスレッドの速度が低下しない限り、シャドウを実行しないでください。
受け入れられた答えのどれも影とレイヤーについて言及していないので、これは言わなければならなかったと思いました。 :+)
UITableView
スクロールパフォーマンスの問題は、他の回答で既に説明した手法を使用して解決できます。ただし、パフォーマンスの低下は多くの場合、本質的にエラーまたは反復的なものが原因です。
UITableView
がセルを再利用するという事実と、各セルが独自のイメージを必要とする可能性があるという事実により、ソリューションが少し複雑になります。一般的な方法でどのように解決されているかから、ここで注意すべきことを要約します。
[tableView reloaddata]
cellForRowAtIndexPath
内に、配列の正しいデータモデルオブジェクトからデータ(テキスト)を設定するコードを含めます。問題を回避するには、テーブルビュー内の イメージの遅延読み込み に関するこのチュートリアルを参照してください。