スワイプジェスチャをUITableView実行していますが、現在指が入っているセルのインデックスパス、つまりどのセルからスワイプジェスチャが実行されているかを知りたいです。
indexPathその選択したセルの情報を表示する必要があるため、必要です。
前もって感謝します..
スワイプジェスチャをUITableView実行していますが、現在指が入っているセルのインデックスパス、つまりどのセルからスワイプジェスチャが実行されているかを知りたいです。
indexPathその選択したセルの情報を表示する必要があるため、必要です。
前もって感謝します..
それで、あなたが本質的に必要とするのは、テーブル上のスワイプジェスチャからセルを取得することですか?そうです。あなたはを知る必要はありませんindexPath。まず、同様にスワイプを定義しますtableView-
UISwipeGestureRecognizer *showExtrasSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(cellSwipe:)];
showExtrasSwipe.direction = UISwipeGestureRecognizerDirectionRight;
[tableView addGestureRecognizer:showExtrasSwipe];
[showExtrasSwipe release];
この後、実際のスワイプが発生したときに、ハンドラーを配置する必要があります。そのためにこれを試してください-
-(void)cellSwipe:(UISwipeGestureRecognizer *)gesture
{
CGPoint location = [gesture locationInView:tableView];
NSIndexPath *swipedIndexPath = [tableView indexPathForRowAtPoint:location];
UITableViewCell *swipedCell = [tableView cellForRowAtIndexPath:swipedIndexPath];
//Your own code...
}
したがって、最初SwipeGestureRecognizerにUITableView(ではなくUITableViewCell)にをアタッチします。その後、でスワイプが発生するとUITableView、最初にジェスチャが発生した場所の座標を取得しUITableViewます。次に、この座標を使用してIndexPath、スワイプが発生した場所の行を取得しUITableViewます。最後に私を使用しIndexPathて取得しUITableViewCellます。本当にシンプル..
注:私はこれまで何度も尋ねられてきました。したがって、私が各個人ではなくで 使用SwipeGestureRecognizerした理由のこの説明を追加します。UITableViewUITableViewCell
SwipeGestureRecognizerそれぞれに付けていたかもしれませんUITableViewCell。SwipeGestureRecognizerセルごとに個別に接続する必要があったため、これは行いませんでした。したがって、1000個のセルがあれば、UITableView1000個のオブジェクトを作成する必要がありSwipeGestureRecognizerます。これは良くない。上記のアプローチでは、1つ作成するだけSwipeGestureRecognizerで、それだけです。
「スワイプして削除」(水平方向にスワイプ)を実装しようとしている場合は、車輪の再発明を行う必要はありません。デリゲートでメソッドのコメントを解除するだけcommitEditingStyle:forRowAtIndexPath:です。UITableViewController
このソースコードを確認しましたか?: https ://github.com/thermogl/TISwipeableTableView
それは本当にあなたを助けるかもしれません、これは「スワイプ可能な」テーブルビューの完全な実装です...