2012-04-03 10 views
2

reloadDataメソッドを呼び出して、テーブルビューにすべての行(表示されている行だけでなく)のデータを再読み込みできるようにする方法はありますか?すべての行のUITableViewのreloadData

ありがとうございます。

+2

テーブルビューではスクロール中にセルを再利用することが予想されるため、ほとんど考えられません。本当の意味では、見えない「行」の多くは存在しません。これを望んでいるあなたのより高いレベルの目的は何ですか(...多分別のアプローチがあります)? –

+1

@phillipMills私はここに私の問題の回避策を考えています:http://stackoverflow.com/questions/9989495/too-many-uilabels-with-unicode-text要約すると、私はいくつかの私の最初のスクロール中にハングアップしているテーブルビューには、各ラベルにユニコードテキストのラベルがたくさん含まれていますが、私のコードはきれいで、メモリリークやグリッチが1つもないので、テーブルビューがreloadDataを呼び出すときにActivityIndi​​catorビューを追加することにしましたすべての行のすべてのデータをリロードしてから、通知の後にインジケータ・ビューを停止することができます。 – JAHelia

+0

「再利用可能なセル」と「データを取得する」の両方を実装する際に間違っていることを理解する必要があると確信しています。あなたがあなたのコードを投稿すると、人々はそれについてコメントすることができます。特に、 'cellforrowatindexpath'とfetchresultscontrollerを埋めるために使用するものを投稿したいとします。 – Ali

答えて

1

表示されていない行は表示されません。私は、目に見えるものの横に細胞がなく、縁に1つまたは2つ以上の細胞がないことを意味する。
あなたの答えはいいえ、それをする方法がないか、あなたがこれを行う必要がある理由をもっと説明する必要があると思います!

+0

上記のコメントをご覧ください。 – JAHelia

0

[tableView reloadData]は、表示されているセルのみを更新します。セルのデータはテーブルビューから分離する必要があります。セルに表示されているデータを含む項目の内部配列を再ロードします。

2

reloadDataをカスタマイズする必要はありません。前述したように、画面外のセルは実際には存在しません。彼らは再利用待ち行列(うまくいけば)に座っていて、スクリーン上に引っ張られるのを待っている。画面上を移動すると、テーブルビューはtableView:cellForRowAtIndexPath:をデータソースに送信します。ここでは、その特定の行のために、その特定のセルに必要なものすべてを設定します。

セルのデータを保持する配列を作成することを検討してください。したがって、100セル分のデータがある場合は、100項目の配列を作成します。セル10-15だけが表示されているのに、セル89に表示されるデータを更新する必要がある場合は、配列の89番​​目の要素にアクセスして適切に更新します。 89番目のセルまでスクロールすると、indexPath.rowの配列にアクセスするだけです。

関連する問題