0

UITableViewにすべての行をプリロードするように指示する方法はありますか?

tableViewは、いくつかのコメント(最大80のコメント)を表示することになっています。

したがって、私のCommentCellは、セッターを使用してセルを特定のコメントに適合させます。

-(void)setComment:(Comment *)newComment {
 if (newComment != comment) {
     [comment release];
        comment = [newComment retain]; 
       /*
        * set the cells view variables here
        */
    }
}  

この特定のセッターはかなりの処理リソースを必要とし、スクロールは少し遅れます。

呼び出し時に静的cellIdentifierの代わりにコメント固有のreuseIdentifierを使用しています

dequeueReusableCellWithIdentifier:

保証するために、「newComment」は古い「comment」と同じです。
実際、これは、すでにロードされているセルをスクロールするときにうまく機能します。

しかし、初めてコメントをスクロールするとき、それはまだ地獄のように遅れています。

これが私の質問につながります:
すべてのセルをプリロードするようにテーブルビューに指示する方法はありますか?(私は疑っています)
または
「dequeueReusableCellWithIdentifier:」に依存する代わりに、独自のキャッシュを実装する必要がありますか?

4

2 に答える 2

2

コメント固有のreuseIdentifierが、すべての処理を遅くしている(または少なくとも役に立たない)原因である可能性があることに注意してください。UITableViewCellsにreuseIdentifierを使用する理由は、必要になるたびに新しいセルを割り当てようとすると、既に作成されたセルを再利用できるほどのパフォーマンスが得られないためです。

コメントを事前に計算して、セルのプロパティを設定し、テーブルビューからスクロールした後にセルを再利用できるようにすることをお勧めします。

于 2010-05-28T18:27:03.463 に答える
1

いいえ、にデータをプリロードする必要がありますdataSource。必要なものをすべて配列に入れて、プリロードされたオブジェクトの配列からテーブルのセルを埋めるだけです。

于 2010-05-28T17:36:57.717 に答える