5

UITableView にある種の遅延読み込みを実装する必要があります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //... some initializations here

    //this is a function that pulls my cell data using helper class
    NSData *cellData=[MyDataClass dataForCellAtIndexPath:indexpath.row];

    //... here I populate pulled data to cell

    return cell;
}

すべてがうまく機能しますdataForCellAtIndexPath、メソッドが遅いため、テーブル ビューのスクロールがスムーズではありません。したがって、このメソッドを呼び出して、データをセルに遅延入力する実装を実装する必要があります。私が期待する結果は、テーブルビューはスムーズにスクロールしますが、セルが描画された後、セルのコンテンツが少し入力されることです。助けてください、どうすればできますか?

4

3 に答える 3

4

はい、データ コレクションをバックグラウンド スレッドにプッシュすることを検討できます。最初に試すのは、何か改善されるかどうかを確認するための最も簡単なオプションです。

[MyDataClass performSelectorInBackground:@selector(dataForCellAtIndexPath:) withObject:indexpath.row];

この投稿では、 Grand Central DispatchNSThreadなど、より複雑でカスタマイズ可能な他のオプションについて言及しています。

于 2012-04-10T16:20:32.327 に答える
2

大量のデータを使用している場合は、それらを保存するか、tableView にデータを入力するためにCore-data使用することをお勧めします。NSFetchedResultsController

これは、主に tableView をより高速に取り込み、高いパフォーマンスを実現するために、tableView と関連付けて作成されています。

これはNSFetchedResultsControllerのドキュメントへのリンクです!

于 2012-04-10T16:14:45.227 に答える
-1

そのため、表セルのインデックス値に基づいて新しいデータをロードできます

ロードする新しいデータの量の条件を設定できます。これは、ユーザーが現在調べているセルに依存するためです。

于 2012-04-10T17:22:05.647 に答える