5

[tableView reloadData]ios でパフォーマンスに影響しますか? とは[tableView reloadData]? テーブルビューをどのようにリロードしていますか? テーブルビューをリロードする他の方法はありますか?

テーブルビューの最後にいくつかの行を追加したい。これどうやってするの?

違いは何ですか

[self.tableView reloadData] 

[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:insertIndexPathswithRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];
4

3 に答える 3

4

reloadDataはまさにそれを行います-テーブルビュー(の表示部分)の完全な更新。

特定のセルを更新する必要がある場合、つまり更新、挿入、削除、移動する場合は、代わりに適切な更新方法を使用してください。これにより、変更がアニメーション化されます。

于 2012-10-04T12:00:56.643 に答える
1

AFAIK、[self.tableView reloadData]は、データが完全に変更され、最新バージョンを表示したい場合(または、フィルターが変更された場合など)に使用されます。

つまり、サッカー選手を表示するテーブルがあり、「スイッチをフリック」して別のチームのサッカー選手を表示するとします。この場合、reloadDataを使用する傾向があります。これにより、テーブル全体が更新されます。

[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:insertIndexPathswithRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView endUpdates];

表示されている現在のデータセットに新しいデータを追加するために使用されます。これは全体を更新しませんが、新しい行を現在のテーブルにアニメーション化します。

于 2012-10-04T12:01:21.773 に答える
1

1 つのセクションまたは数行をリロードする場合は、これを行う方法もあります。

行の場合:

[self.tableView reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation];

セクションの場合:

[self.tableView reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation];
于 2012-10-04T12:15:22.097 に答える