有一个tablview列表, 打算显示类似通讯录的联系人列表, 右边是A-Z的导航, 可能数据量太大。假如一次从api返回10000个信息, 我的疑问是, 一次初始化10000个cell, 可行吗? 因为数据太多了, 本来想分页读取, 但是这种显示方式, 用分页不太合适。 或者有什么思路?
まず、システム tableView のセルには再利用の仕組みがあり、標準ルーチンに従って書くと、すべてのセルが同じレイアウトなどであれば、一度に 10,000 個のセルを初期化することはありません。内容に一貫性がありません。
ローカル データを使用してみることができます
サーバー側を変更する必要があり、各リクエストで約 30 ~ 40 個のデータが読み込まれます。 フロントエンドのテーブルビューでは、ドロップダウン読み込みを通じて一度に複数のデータが読み込まれます。
質問 19 と 20 を見てください: http://www.henishuo.com/ios-interview-middle-two/
一度にこれほど多くのデータを保持することは決して不可能です。 tableview はスクロールビューを継承しており、contentsize を取得するためにこれを計算する必要があるため、データ ソースとして使用されるデータの数、行の高さの計算が何回行われるか、非常にスタックするか、初めての場合は待ち時間が長くなります。
推奨事項: 初めてロードするデータは、10 個または 20 個などの少量のデータのみにしてください。次に、高さをキャッシュします。そのため、10,000 個のアイテムがあっても、高さがキャッシュされた後はスタックすることはありません (大量のリッチ テキストを含むものを除く)。
記事内の行の高さを自動的に計算してキャッシュする方法を見てみましょう。
tableviewcell の再利用メカニズムによると、これは考慮されていないようですが、実行してどのくらいのメモリを占有するかを試してください...
セル再利用メカニズムではこの問題を考慮する必要はありません
まず、システム tableView のセルには再利用の仕組みがあり、標準ルーチンに従って書くと、すべてのセルが同じレイアウトなどであれば、一度に 10,000 個のセルを初期化することはありません。内容に一貫性がありません。
内のこれらのセルにのみ存在します。ローカル データを使用してみることができます
サーバー側を変更する必要があり、各リクエストで約 30 ~ 40 個のデータが読み込まれます。
フロントエンドのテーブルビューでは、ドロップダウン読み込みを通じて一度に複数のデータが読み込まれます。
質問 19 と 20 を見てください: http://www.henishuo.com/ios-interview-middle-two/
一度にこれほど多くのデータを保持することは決して不可能です。 tableview はスクロールビューを継承しており、contentsize を取得するためにこれを計算する必要があるため、データ ソースとして使用されるデータの数、行の高さの計算が何回行われるか、非常にスタックするか、初めての場合は待ち時間が長くなります。
推奨事項: 初めてロードするデータは、10 個または 20 個などの少量のデータのみにしてください。次に、高さをキャッシュします。そのため、10,000 個のアイテムがあっても、高さがキャッシュされた後はスタックすることはありません (大量のリッチ テキストを含むものを除く)。
記事内の行の高さを自動的に計算してキャッシュする方法を見てみましょう。
tableviewcell の再利用メカニズムによると、これは考慮されていないようですが、実行してどのくらいのメモリを占有するかを試してください...
セル再利用メカニズムではこの問題を考慮する必要はありません