削除ボタンを表示せずにアニメーション付きのセルを消去するには、テーブルビューのセルのどこでも左または右にスワイプすることができます。これどうやってするの?UITableViewCellの任意の場所で左または右にスワイプして、削除ボタンがないセルを削除しますか?
答えて
私はこれを試して実装していませんが、私はそれを撃つでしょう。最初のtableViewでセルを見つけること。(注意、アンindexPathを、カスタムのUITableViewCellを作成し、それはあなたが
- それはで使用されているのtableViewへの参照を使用することができます2つの性質を持ってみましょう。
cellForRowAtIndexPath:
では、カスタムセルを作成する場所でこれらのプロパティを設定します。また、セルにUISwipeGestureRecognizerを追加してください。
cell.tableView=tableView;
cell.indexPath=indexPath;
UISwipeGestureRecognizer *swipeGestureRecognizer=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(deleteCell:)];
[cell addGestureRecognizer:swipeGestureRecognizer];
[swipeGestureRecognizer release];
ジェスチャーが水平スワイプのみを受け取るようにしてください。
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if([[gestureRecognizer view] isKindOfClass:[UITableViewCell class]]&&
((UISwipeGestureRecognizer*)gestureRecognizer.direction==UISwipeGestureRecognizerDirectionLeft
||(UISwipeGestureRecognizer*)gestureRecognizer.direction==UISwipeGestureRecognizerDirectionRight)) return YES;
}
あなたdeleteCell:
-(void) deleteCell:(UIGestureRecognizer*)gestureRec
{
UIGestureRecognizer *swipeGestureRecognizer=(UISwipeGestureRecognizer*)gestureRec;
CustomCell *cell=[swipeGestureRecognizer view];
UITableView *tableView=cell.tableView;
NSIndexPath *indexPath=cell.indexPath;
//you can now use these two to perform delete operation
}
ジェスチャ認識装置の向きを最初に初期化してセルに追加する方向を設定する必要があることを忘れないでください。このようなもの:swipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionRight; – ColossalChris
Apple、 '(void)cancelPreviousPerformRequestsWithTarget:(id)aターゲットセレクタ:(SEL)aSelector'を提供していないあなた。 –
あなたのプロジェクトにこのコードを追加する必要があります。
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
// Return YES if you want the specified item to be editable.
return YES;
}
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
//add code here for when you hit delete
}
}
エルス
MOR情報uがこのリンクを介して enter link description here
Vivek2012とiWill - お返事ありがとうございますが、DELETEボタンを表示したくありません。すでにstackoverflowの回答があります。 スワイプの左または右のジェスチャーを受信した分、セルを消去します。私の説明を読んでくださいありがとう – carbonr
を行くことができるUITableViewCellEditingStyleがUITableViewCellEditingStyleDeleteであれば、その後、
であなたのセルを消去するためにSTHを行う、これらの2つの方法- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;
を実装
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
それだけです。
で@MadhavanRPによって掲示ソリューションは動作しますが、それは必要以上に複雑です。より簡単なアプローチを取って、表内で発生するすべてのスワイプを処理し、スワイプの位置を取得してユーザーがスワイプしたセルを特定するジェスチャ認識機能を作成できます。セットアップするには
ジェスチャー認識:スワイプを処理するためにviewDidLoad
で
- (void)setUpLeftSwipe {
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self
action:@selector(swipeLeft:)];
[recognizer setDirection:UISwipeGestureRecognizerDirectionLeft];
[self.tableView addGestureRecognizer:recognizer];
recognizer.delegate = self;
}
コールこの方法:
- (void)swipeLeft:(UISwipeGestureRecognizer *)gestureRecognizer {
CGPoint location = [gestureRecognizer locationInView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:location];
... do something with cell now that i have the indexpath, maybe save the world? ...
}
注:あなたのVCがジェスチャ認識のデリゲートを実装する必要があります。
- 1. UITableViewで右から左へのスワイプに削除ボタンを表示したい
- 2. UITableViewCellスワイプを削除してバウンスを削除する方法
- 3. UITableViewCell、スワイプなしでスワイプスタイルの削除ボタンを表示
- 4. UITableViewを使用したUIPageViewControllerは、スワイプしてセルを削除しますか?
- 5. カスケード削除は意図しないレコードを削除します
- 6. UITableViewCellとそのセルのデータをすべて削除します
- 7. 左からインジケータボタンを削除し、UITableViewの右側に削除ボタンを表示するには?
- 8. UITableViewCellはスワイプされても削除ボタンは表示されません
- 9. jqueryのがいない(または削除)任意のフォームフィールドにフォーカスを
- 10. 左の削除ボタンを表示する方法UITableViewCell
- 11. VI(VIM):右から左へ削除/変更しますか?
- 12. UITableViewCell、ボタンフレームを削除しますか?
- 13. マウスオーバーで削除ボタンを表示し、削除後にliまたはdivを削除します
- 14. iPadは、選択した任意のソリューションのワイドテキストオプションを削除しますか?
- 15. 「スワイプして削除」を追加しますが、すべてのセルでは使用しません
- 16. TableViewのスワイプが削除されない
- 17. 削除テーブルビューセルが赤くデフォルトなしでテーブルビューのセルを削除する方法を左側に
- 18. リスト項目を左にスワイプして右にスワイプしますか?
- 19. クラッシュ時にスワイプして削除する
- 20. グリッドビューのイベントを削除しないイベントを削除します。
- 21. UITableViewCellで削除するスワイプが白い背景になっている必要があります。
- 22. テーブルの右のセルを削除できません
- 23. テンプレートを使用して任意のコンテナを削除する
- 24. Safari 5のボタンの3px左右余分スペースを削除するには?
- 25. 速い反復の値で任意の場所から削除するためのコンテナ
- 26. UITableViewは「スワイプして削除」モードには入りません
- 27. 右クリックメニューのボタンを削除オプション
- 28. スワイプで削除する
- 29. iPhoneシミュレータは右にスワイプしますが、左にスワイプしませんか?
- 30. UITableViewはスワイプを削除するのを無効にしますが、まだ編集モードで削除していますか?
可能であれば、コードを投稿してください。 –