質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

352閲覧

tableViewのスワイプについて

退会済みユーザー

退会済みユーザー

総合スコア0

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/05/18 03:21

swift

1func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { 2 3 let edit = UIContextualAction(style: .normal,title: "追加", handler: { (action: UIContextualAction, view: UIView, success :(Bool) -> Void) in 4 5 let alert = UIAlertController(title: "タイトル", message: "メッセージ", preferredStyle: .alert) 6 7 // OKボタンの設定 8 let okAction = UIAlertAction(title: "OK", style: .default, handler: { 9 (action:UIAlertAction!) -> Void in 10 11 // OKを押した時入力されていたテキストを表示 12 if let textFields = alert.textFields { 13 14 // アラートに含まれるすべてのテキストフィールドを調べる 15 for textField in textFields { 16 let name = textField.text! 17 let index = Int(floor(Double(indexPath.row / 2))) 18 19 self.products[index].detail.append(name) 20 self.mytableView.reloadData() 21 } 22 } 23 }) 24 alert.addAction(okAction) 25 26 // キャンセルボタンの設定 27 let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) 28 alert.addAction(cancelAction) 29 30 // テキストフィールドを追加 31 alert.addTextField(configurationHandler: {(textField: UITextField!) -> Void in 32 textField.placeholder = "テキスト" 33 }) 34 35 36 alert.view.setNeedsLayout() // シミュレータの種類によっては、これがないと警告が発生 37 38 // アラートを画面に表示 39 self.present(alert, animated: true, completion: nil) 40 print("edit") 41 42 success(true) 43 }) 44 45 edit.backgroundColor = .blue 46 47 return UISwipeActionsConfiguration(actions: [edit]) 48 }

やりたい事

cellをスワイプした時に引っ張りすぎるとスワイプの処理が実行されるのでスワイプだけで処理が実行されない様にしたい。
理想としては、cellをスワイプしてからスワイプをタップして初めて処理が実行される様にしたい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath)の最後の箇所を下記のようにしたらいかがでしょうか?

let config = UISwipeActionsConfiguration(actions: [edit]) config.performsFirstActionWithFullSwipe = false return config

参考記事
https://stackoverflow.com/questions/46688264/ios-11-stop-default-behaviour-of-swipe-uitableviewcell

投稿2018/05/18 21:42

newmt

総合スコア1277

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/05/19 00:47

懇切に教えて頂きありがとうございました。上記のようにしたら出来ました。
退会済みユーザー

退会済みユーザー

2018/05/19 08:52

構造体を利用して、私なりスワイプ出来るセルと出来ないセルを設定しているのですがその過程でエラーが起きてしまいどう対処すればいいか分からなくて困っているので見ていただけませんか? お忙しいと思いますが教えて頂けたら嬉しいです。 https://teratail.com/questions/126933
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問