0

カスタムUITableViewとUIImageView、UILabelがあります。一部の通知では、UIImageViewではなくUILabelのみを更新する必要があります。私がこれが好きなら:

[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:idxCell inSection:0]] withRowAnimation:UITableViewRowAnimationFade];

セルのすべてのコンテンツが更新されており、UIImageViewにちらつき効果があります。私はこのようにしました:

MyTableViewCell *cell = (MyTableViewCell *)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:idx inSection:0]];
cell.counterLabel.text = [NSString stringWithFormat:@"%@", counter];

しかし、MVCパターンに対応していないので良くないと思います。Modelオブジェクトを更新する必要があると思います。アドバイスが必要です、どうすればこれを行うことができますか?

4

1 に答える 1

0

データをフェッチする場所から NSArray または NSDictionary を更新する必要があります。行をリロードすると、同じ辞書または配列が再度呼び出され、同じ値を持つためです。

didSelectRowAtIndexPath でディクショナリまたは配列を更新してから、行をリロードします。

cellForRowAtIndexPath は、行のデータを取得する NSArray または NSDictionary を更新します。

効くかも

于 2012-04-11T04:52:36.947 に答える