1

次のようにtableViewに行を追加しようとしています。

[myArray addObject:@"Apple"];

[myTableView beginUpdates];
[myTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
[myTableView endUpdates];

問題は、セルが更新されないことです。textLabelsはデータソース配列に対応していません。

次を追加して問題を修正します。

[myTableView reloadData];

しかし、それは素晴らしい挿入アニメーションをなくします。

アイデア?ありがとう!

4

2 に答える 2

4

addObject:可変配列の最後にオブジェクトを追加します。次に、次の行で、テーブル ビューに、テーブルの一番上に表示する新しい行があることを伝えます。配列が「後方」でない限り、セルを間違った場所に「挿入」するようにテーブルに指示しているように見えます。

于 2013-02-26T08:48:08.840 に答える
1

配列の最後にアイテムを追加していますが、テーブルの先頭に行を追加しています...次のようにしてみてください:

NSString* obj = @"Apple";
[myArray addObject:obj];

[myTableView beginUpdates];
[myTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[myArray indexOfObject:obj] inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
[myTableView endUpdates];
于 2013-02-26T08:46:46.647 に答える