あなたtableView:cellForRowAtIndexPath:
方法は、(あなたがtableView:heightForRowAtIndexPath:
を使用していない、またはそれは非常に高速です)dequeueReusableCellWithIdentifier:
を使用して、正しく書かれている場合は、のUITableViewは、デバイスに過負荷をかけることなく、数千行を処理することができるはずです。生データの保存に心配するだけで済みます。
問合せが完了するまで行数が分からないという問題は、回避するだけで十分です。クエリからさらに多くの行を受け取ると、UITableViewのinsertRowsAtIndexPaths:withRowAnimation:
を使用して、より多くの行が利用可能であることをテーブルビューに通知します(tableView:numberOfRowsInSection:
およびtableView:cellForRowAtIndexPath:
にこれらの新しい行が反映されることを確認してください)。
クエリを続行する前にユーザーが現在のリストの最後までスクロールするまで待つ場合は、UITableViewがUIScrollViewのサブクラスであり、UITableViewDelegateがUIScrollViewDelegateを実装することに注意してください。 UITableViewDelegateでscrollViewDidScroll:
を使用して、ユーザーがスクロールしたときを知り、テーブルビューのcontentOffset
を確認して、さらに多くのデータをロードするのに十分な範囲でスクロールしたかどうかを判断してください。まあ
最適な実装に役立つだろういくつかの他のためのものであってもよいが見つかりました:http://www.lwxted.com/blog/2012/smart-data-loading-table-views/ – Firdous