17

重複の可能性:
UITableView 内の単一の UITableViewCell を更新することは可能ですか?

シーケンスでは、リスト データ (NSMUtableArray) 内の特定のオブジェクトのみを更新し、その値を更新したら、GUI を更新するために、以下のようにテーブル全体をリロードしました...

[table reloadData];

それは正常に機能しましたが、効率の点で、スクロール中に少しハングしています。テーブル全体をリロードせずに特定のセルのみを更新する方法はありますか?

ありがとう。

4

6 に答える 6

32
 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;

これを使って

于 2013-02-05T07:20:24.307 に答える
9

これを使用できます..

NSArray *indexPathArray = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:0]];
//You can add one or more indexPath in this array...

[tblview reloadRowsAtIndexPaths:indexPathArray withRowAnimation:UITableViewRowAnimationFade];
于 2013-02-05T07:51:02.407 に答える
2

セルオブジェクトは次の方法で取得できます-

UITableViewCell *cell = [table cellForRowAtIndexPath:indexPath];

データ配列からオブジェクトごとに関連する値を変更します。表に反映する必要があります。お役に立てれば。

于 2013-02-05T07:36:33.953 に答える
2

index path を使用して、特定の画像行をリロードできます。

    [mainTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                         withRowAnimation:UITableViewRowAnimationNone];
于 2013-02-05T08:31:43.607 に答える
1

GUI の更新を行っているため、他の方法を使用するよりも reloadData を使用することをお勧めします。reloadData は、UITableView不整合を回避するため、更新する場合に最適な方法です。他にできることは、条件を追加して、cellForRowAtIndexPath変更されたセルに対してのみ実行を発生させることです。

于 2013-02-05T07:25:50.107 に答える
0

1 つのアイテムを追加するだけで、それをテーブルに追加したい場合は、UITableView に手動で挿入できます。例を次に示します。

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_directions.count-1 inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:YES];
于 2013-02-05T07:21:04.030 に答える