2012-03-18 10 views
4

UITableViewCellをドラッグしているときに、デリゲートメソッド- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPathが呼び出されます。このデリゲートメソッド内では、選択したセルのプロパティをproposedDestinationIndexPathに応じて設定できます。並べ替え中にUITableViewCellを更新する方法

私の質問は、移動中にセルの内容を更新する方法です。私は、移動ハンドルを解放した後にセルを更新することができますが、その位置(proposedDestinationIndexPath)に応じて&を下に移動しながら更新された値を表示する必要があります。

これを達成する方法を知っている人はいますか?

+0

@Flex_Addictedありがとうございます。 私の最初の投稿はここでしたStackoverflow ...今後の投稿の書式設定には注意が必要です。 –

+0

問題ありません。どういたしまして。 –

答えて

3

tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:でセルの内容を変更することができます。

ただし、実際に新しいindexPathにセルを移動しようとしない場合、このメソッドは呼び出されません。したがって、セルを上下にいくつかピクセル移動するだけで、テキストを変更することはできません。しかし、とにかくやってはいけないと思います。

+1

すぐにお返事ありがとうございます。私が達成したいのは、ネストレベルに応じてインデントを持つ階層リストです。したがって、セルを移動すると、インデントを更新するだけでなく、選択したセル(移動中はリアルタイム)でアイコン(セルが子ノードを持つノードであるか唯一の子であるかを示すアイコン)を更新する必要があります。これを行う「アウトライン」と呼ばれるアプリがあるので、何とか可能でなければなりません。 –

+0

ピクセルの位置によっては、私は更新する必要はありませんが、proposedDestinationIndexPathに依存します。したがって、私はdelegate methode 'tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:'を使用してセルのプロパティを設定します。セルはまだ動いている間は更新されたプロパティを反映しません。私は 'setNeedsDisplay'を試しましたが、それも更新されません。 –

+0

targetIndexPathForMoveFromRowAtIndexPathのコードを表示することができます。私はMatthiasのソリューションを試したところ、異なるproposedDestinationIndexPathに移動しながらセルの内容を変更することができました。 –

関連する問題