0

テーブルビューでセルの順序を変更したい

次のコードを使用しています

-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath  
{    
    [tableView moveRowAtIndexPath:path1 toIndexPath:path2];
}

ここpath1で、ユーザーが選択した行のインデックスパス ユーザーがそのセルをドロップした行のインデックスパスを見つけたいので、どうすればtoIndexPath(path2)を見つけることができますか。

4

2 に答える 2

3

このメソッドの目的と混同していると思います。これは、テーブルの変更をデータ モデルに通知するように設計された UITableViewDataSource のコールバック関数です。ドキュメントから:

テーブル ビューの特定の場所にある行を別の場所に移動するようにデータ ソースに指示します。

UITableView オブジェクトは、ユーザーが fromRow で並べ替えコントロールを押すと、このメッセージをデータ ソースに送信します。

つまり、ここで行う必要があるのは、これらの変更と適切に同期するようにモデル (通常は配列) を再配置することです。

これがあなたに良い方向性を与えることを願っています。

于 2013-01-29T13:55:07.297 に答える
1

以下を実装する必要があります。

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}

& また:

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
 //do whatever you want after the row has been moved
}

次に、ドラッグ アンド ドロップの例を示します。

https://github.com/coderDove/UITableView-Drag-n-Drop

お役に立てれば!!!

于 2013-01-29T13:57:44.950 に答える