2012-03-12 7 views
1

特定の状況では、テーブルビューで1つまたは2つのレコードを削除する必要があります。Obj-C、行を保持している配列をアップロードした後にテーブルの一部をリフレッシュしますか?

reloadDataを呼び出すのではなく、私のデータ配列からテーブルの下の6行をリフレッシュできますか?

私は本当にreloadDataを呼び出したくありません。これは、テーブル内のユーザーの位置が失われるためです。

コアデータを使用していないため、書き直す時間がありません。

答えて

3

UITableViewのreloadRowsAtIndexPaths:withRowAnimation:はあなたが望むことをします。あなたには、いくつかの行を削除したい場合は

は、あなたがこのような何かを行うことができます:

[tableView beginUpdates]; 

NSInteger rowToDelete = [self.objects indexOfObject:foo]; 
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:rowToDelete inSection:0]; 
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; 
[self.objects removeObject:foo]; 

[tableView endUpdates]; 
3

があります。あなたはreloadRowsAtIndexPaths:withRowAnimation:またはreloadSections:withRowAnimation:を使用することができますが、あなたのデータモデルから削除されている場合は、このような何かを行う必要があります:あなたのテーブルビューとデータモデルへ

NSArray *rowsToDelete = [NSArray arrayWithObjects:[NSIndexPath indexPathForRow:row inSection:section], <etc> , nil]; 
[tableView beginUpdates]; 
[tableView deleteRowsAtIndexPaths:rowsToDelete withRowAnimation:<pickYourPosion>]; 
[tableView endUpdates]; 

変更が同期して行われなければなりません。それについてhereをお読みください。

関連する問題