いいえ、私は立ち往生しています。これは私の前の投稿の延長です。ここに私がやろうとしていることがあります。insertRowsAtIndexPathsを使用しているときの表ビューのセルインデックス処理
ナビゲーションバーに[編集]ボタンがあります。このボタンを押すと、1つのセクションテーブルビューの先頭にセルが追加されます。このセルの目的は、新しいデータをテーブルに追加できるようにする場合です。編集スタイルはInsertです。表の残りのセルは、編集スタイル「削除」で構成されます。ここで
は私のsetediting方法である:私は今、2つのインデックスパスを持っている以外、- (IBAction) setEditing:(BOOL)isEditing animated:(BOOL)isAnimated
{
[super setEditing:isEditing animated:isAnimated];
// We have to pass this to tableView to put it into editing mode.
[self.tableView setEditing:isEditing animated:isAnimated];
// When editing is begun, we are adding and "add..." cell at row 0.
// When editing is complete, we need to remove the "add..." cell at row 0.
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
NSArray* path = [NSArray arrayWithObject:indexPath];
// fill paths of insertion rows here
[self.tableView beginUpdates];
if(isEditing)
[self.tableView insertRowsAtIndexPaths:path withRowAnimation:UITableViewRowAnimationBottom];
else
[self.tableView deleteRowsAtIndexPaths:path withRowAnimation:UITableViewRowAnimationBottom];
[self.tableView endUpdates];
// We nee to reload the table so that the existing table items will be properly
// indexed with the addition/removal of the the "add..." cell
[self.tableView reloadData];
}
私は私のコードでは、この余分なセルを占めています= [0,0] - 新しいセルと最初の古い元テーブル内のセル。 setEditingでテーブルビューのセルをリロードするための呼び出しを追加すると、セルのインデックスが再作成されますが、テーブルビューはアニメーション化されなくなりました。
私はケーキを食べて食べたいです。私がやっていることを達成し、アニメーションを維持する別の方法がありますか?
--John
これは、テーブルの最後に新しいセルが追加されていることを除いて、これが行われるサンプルコードを見てきました。私が欲しいものではありません - 私はテーブルの冒頭でそれをしたいです。 – johnnyspo
問題は何か、何を達成しようとしているのかは不明です。 – XJones
アドレス帳を例にとります。連絡先を編集すると、 "アドレス"セクションの最後に "新しいアドレスを追加する"セルが "+"編集スタイルで追加されます。セクションの冒頭に新しいセルが必要な場合を除いて、私は同様のことをしたい。私はindexPath [0,0]にセルを挿入することでこれを簡単に達成できます。しかし、これは[0,0]に2つのセルを与えます(新しいセルと[0,0]の元のセル)。私はこれを修正することができますが、テーブルを再ロードする(セルを再インデクシングする)ことを除いて、編集ボタンが押されたときに表がアニメーション化されなくなりました。 – johnnyspo