1

で静的セルと動的セルを使用する間のパフォーマンス/メモリ使用量のトレードオフを教えてもらえUITableViewますか?

これが私の状況ですTableView。6 つの異なるセクションがあります。最初のセクションは、アプリの現在の状態に応じて、ビューが読み込まれるたびに異なる数のセルを保持する tableView の唯一のセクションです。static cellsつまり、インターフェイス ビルダーでそのセクションに対して 12 を宣言しcellsましたが、これまでのユーザーのアプリとのやり取りに応じて、特定の数のみを表示します。他の 5 つのtableViewセクションにはすべて含まれてUISwitchesおりtextFields、変更されることはありません。

そのため、最初のセクションに50 を静的に割り当てcellsたが、アプリの状態によっては半分しか表示されなかったとします。ただし、最大50まで表示できるようにしたいと思いcellsます。アプリの速度やパフォーマンスにどのような影響がありますか? 全体をtableView動的に実行し、毎回他のセクションのswitchesandを再描画すると、アプリケーションのパフォーマンスが向上しますか?textFields

4

1 に答える 1

2

UITableView 自体は、この状況でのパフォーマンスとは関係がありません。本当の問題は、新しいセルをいつ、どのように割り当てるかです。

内容が変更されない静的セルがあり、インターフェイス ビルダー (旧称 Interface Builder) を使用してそれらを作成する場合、割り当てが一度だけ、通常は で行われ-viewDidLoad、そのテーブルの存続期間中 (または少なくとも まで-viewDidUnload)、これらのセルが割り当てられることがわかります。セルは存在し、再割り当てする必要はありません。

しかし、これはトレードオフです。これで、セルの読み込みが速くなりましたが、アプリのメモリが増えました。これがアプリの速度を劇的に低下させているかどうかは、ケースバイケースで判断する必要があります。その場合、静的セルをデータ ソースのセル フェッチ メソッドで典型的な「動的」スタイルで遅延ロードすることができます。 .

于 2012-10-18T19:26:32.967 に答える