2012-10-04 16 views
5

[tableView reloadData]はiosの性能に影響しますか? [tableView reloadData]とは何ですか?それはどのようにテーブルビューをリロードしていますか?テーブルビューをリロードする他の方法はありますか?ios:[tableView reloadData]

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

[self.tableView reloadData] 

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

これは、すべてのウェルの[標準の場所]に記載されている(http://developer.apple.com/library/ios/#ドキュメント/ユーザーエクスペリエンス/概念/ TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html#// apple_ref/doc/uid/TP40007451-CH10-SW1)。 –

+0

Appleのドキュメントをご覧ください:https://developer.apple.com/documentation/uikit/uitableview –

答えて

3

の違いは何

reloadDataがまさにそれを行う - テーブルビュー(可視部分)の完全なアップデート。

更新、挿入、削除、移動といった特定のセルを更新するだけでよい場合は、代わりに適切な更新メソッドを使用してください。これにより、変更がアニメ化されます。

1

私の知る限りでは、[self.tableView reloadData]は使用されているデータが完全に変更されており、最新のバージョンを表示したい場合(または多分フィルタが変更されたなど...)

つまり、あなたが持っている想像のためのより多くのフットボール選手を示すテーブルと、別のチームのフットボール選手を表示するためにあなたは「スイッチを軽くたたく」。この場合、reloadDataを使用する傾向があります。これにより、テーブル全体がリフレッシュされます。

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

は、表示されている現在のデータセットに新しいデータを追加するために使用されます。これは全体をリフレッシュするのではなく、新しい行を現在の表にアニメートします。

1

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

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

:行について

[self.tableView reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation]; 
関連する問題