UITableViewController
私は、最初は単一の行を持つ単一のセクションを持つアプリを持っています(その中に「読み込み中...」と表示されています)。インターネットからいくつかのデータを取得し、その時点で次の呼び出しを行います。
[tableView reloadSections:[NSIndexPath indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
これが必要なのは、データをフェッチした後、最初にあった 1 行だけではなく、多くの行が存在するためです (したがって、テーブル ビューに表示されているセルのリストを要求することはできません。これは、1 つの古いセルを返すだけだからです。 )
問題は、表示されている行だけでなく、すべての行cellForRowAtIndexPath
に対してデリゲート メソッドを呼び出していることです。メソッドにいくつかのログを入れることで、それを確認しました。行をシンプルに切り替えると、スクロールして他の行が表示されるまで、最初の数行のみが呼び出されます。これは私の iOS4 iPod Touch と iOS5 シミュレーターで発生します。[tableView reloadData]
cellForRowAtIndexPath
約 300 行ありますが、読み込みが非常に遅くなり、通常は iPod Touch でクラッシュします。
私が使用していない理由reloadData
は、新しい行の追加をアニメーション化するのに対しreloadData
、それらを突然表示したいからです。