すべての行をプリロードするようにuitableviewに伝える方法は?
-
05-10-2019 - |
質問
すべての行をプリロードするようにuitableviewに伝える方法はありますか?
TableViewは、いくつかのコメントを表示することになっています(最大80のコメント)。
そのため、私のコメントセルはセッターを使用して、セルを特定のコメントに適応させます。
-(void)setComment:(Comment *)newComment {
if (newComment != comment) {
[comment release];
comment = [newComment retain];
/*
* set the cells view variables here
*/
}
}
この特定のセッターは、かなりの処理リソースを取り入れ、スクロールはちょっと遅れています。
呼び出す際に静的Cellidentifierの代わりにコメント固有の再利用剤を使用しています
dequeueReusableCellWithIdentifier:
保証するために、「NewComment」は古い「コメント」に等しくなります。
実際、これは、すでにロードされているセルをスクロールするときにうまく機能します。
しかし、初めてコメントをスクロールするとき、それはまだ地獄のように遅れています。
それは私の質問に私を導きます:
TableViewにすべてのセルをプリロードするように伝える方法はありますか? (私は疑います)
また
「dequeuereusablecellwithidentifier:」に頼る代わりに、自分のキャッシュを実装する必要がありますか?
解決
あなたのコメント固有の再利用者は、すべてが遅くなる原因となっているものである可能性があることに留意してください(または、少なくとも、それは助けにはなりません)。 uaitterviewcellsに再利用能力を使用する理由は、必要なセルが必要なときに新しいセルを割り当てようとすると、既に作成されたものを再利用できるかのようにパフォーマンスがないためです。
コメントを事前に計算することをお勧めします。そうすれば、セルのプロパティを設定し、テーブルビューをスクロールした後にセルを再利用できるようにすることをお勧めします。
他のヒント
いいえ、あなたはあなたのデータをプリロードする必要があります dataSource
. 。必要なものをすべて配列に入れて、プリロードされたオブジェクトの配列からテーブルのセルを埋めるだけです。