0

テーブル ビューには非常に多くのセルがあり、500 近くあります。すべてのセルには、独自の画像と文字列の段落があります。実際には、UIView の drawRect メソッドを使用してこれらの画像と文字列を描画します。したがって、画像と各文字列の位置を計算する必要があります(セルの高さとラッピング領域を測定するための幅と高さを含む)。すべてのセルを一度に計算すると、時間がかかります..それは良くありません。早くセルを見せたい。だから私は目に見えるセルに対してのみ計算を行い、すぐに目に見えるセルを表示したいと考えています。次に、他のセルの計算がバックグラウンドで発生するはずです。もう1つ、各セルに対して1回だけ計算を行います。一度行ったら、値を配列に格納します。次回は、計算ではなく、配列の値に従って単純に表示します..

誰か助けてください...それが可能かどうか知りたいだけですか?はいの場合、それを達成するための手順は何ですか?

前もって感謝します...

4

3 に答える 3

2

これを行うための「手順」はありません。UITableViewは常にこのように動作します。コールバックを提供して、セクションとセクションあたりの行数、および各セルへの入力方法を通知します。UITableViewは、表示されているセルにデータを入力するように要求するだけであり、セルが端からスクロールしたときにセルをリサイクルすることもあります(セルを無限に作成するだけではありません)。

于 2010-10-07T05:27:01.997 に答える
0

UITableViewControllerで表示されているセルは、次の方法で取得できます。

[self.tableView indexPathsForVisibleRows]

次に、表示されているセルの処理を実行できます。例えば

for (NSIndexPath *path in paths ) {
// do some processing in [self.tableView cellForRowAtIndexPath:path]
}

セルごとにカスタムdrawrectを使用して1000行以上に対して同じカスタムビューを実行し、セルの読み込みを最適化するために上記の方法を使用しました。私の処理はffの間にのみ行われます:

  1. ロード時(viewDidLoad)、表示されているセルを更新します。

  2. ユーザーがスクロールを停止したとき(スクロール時のデフォルトは空白のプレースホルダー)

于 2010-10-07T05:30:23.413 に答える
0

UITableViewのvisibleCellsプロパティを使用できると思います。

UITableView *tableView;
NSArray *cells = tableView.visibleCells;
于 2010-10-07T05:30:59.213 に答える