現在、3つのセルを持つTableViewControllerがあり、検出されたときにログに印刷するために長いプレスジェスチャー認識子を追加しようとしています。テーブルビューのセルにジェスチャーレコーダーを追加する
私が追加しました:
class TableTesting: UITableViewController, UIGestureRecognizerDelegate
との私のtableView
方法で、私が作成したUILongPressGestureRecognizer
:
func longPressAction(gestureRecognizer: UILongPressGestureRecognizer) {
print("Gesture recognized")
}
:私も機能
longPressAction
を作成しました
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = "Gesture Recognizer Testing"
var lpgr = UILongPressGestureRecognizer(target: self, action: "longPressAction:")
lpgr.minimumPressDuration = 2.0
lpgr.delegate = self
cell.addGestureRecognizer(lpgr)
return cell
}
私が抱えている問題は、コードをコンパイルして長いpをしようとするときですRESS 1私の細胞は、アプリがクラッシュすると、私はこのエラーを取得しています:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TestingGround.TableTesting longPressAction:]: unrecognized selector sent to instance 0x7f9afbc055d0'
を私は正しい情報が関数に渡されていませんが、私はわからないだと何とか推測していますか?
ご協力いただければ幸いです。
'' longPressAction: "'の代わりに、 '#selector(longPressAction(_ :))'表記を使用してください。 '#selector'を使うとオートコンプリート機能が得られますし、何か正しいことをせず、あなたが望む方法を見つけることができない場合にも警告します。 – keithbhunter
また、ジェスチャ認識機能を 'cell'の代わりに' cell.contentView'に追加してください。 – AdamPro13
だから私は持っているものの代わりに、私は使用する必要があります: 'let lpgr = UILongPressGestureRecognizer(target:self、action:#selector(longPressAction(_ :))' –