1

s の場合、更新ブロック内での挿入、削除、および移動操作の順序は重要ではUITableViewありません。-endAnimations

3 つの配列があるとしましょう:
- 削除 (インデックスのみ)
- 挿入 (インデックス + オブジェクト)
- 移動 (2 つのインデックス)

UITableViewバッチ更新の場合と同様に、この「デルタ」を既存の配列に適切に適用するにはどうすればよいですか?

4

1 に答える 1

2

トリックは、各変更中に何が起こるかという観点からインデックス番号を解釈する辞書 (または実際には配列) を保持することです。本来、0 は 0 を意味し、1 は 1 を意味します。しかし、アイテム 1 を削除すると、たとえば、2 は 1 を意味し、3 は 2 を意味するなどとします。その上にあるものはすべて押し下げる必要があります。そのため、アイテム 2 を何かと交換するように要求した場合でも、意図したオブジェクトを見つけることができます。あなたが言った時の「2」までに。同様に、アイテム 2 に何かを挿入すると、その上にあるすべてのものを押し上げる必要があります。

これで、削除、挿入、移動の順に実行できます。逆に並べ替えられたインデックスの順序で削除を行う必要があることに注意してください(または、一度にすべてを削除できるようにインデックス セットを使用します) 。通常の並べ替え順序で挿入します。

于 2014-08-07T22:17:14.153 に答える