현재 3 개의 셀이있는 TableViewController가 있는데 감지되면 길게 눌러 제스처 인식기를 추가하여 로그에 인쇄합니다.tableView 셀에 gestureRecognizer 추가
내가 추가 한 :
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 한 내 세포는 응용 프로그램이 충돌하고,이 오류 받고 있어요 :
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TestingGround.TableTesting longPressAction:]: unrecognized selector sent to instance 0x7f9afbc055d0'
을 내가 올바른 정보가 함수에 전달되는 것이 아니라, 내가 확실 해요 어떻게 든 같은데요?
도움을 주시면 감사하겠습니다.
var lpgr = UILongPressGestureRecognizer(target: self, action: "longPressAction:")
사용 : 대신의
''longPressAction : "'대신'#selector (longPressAction (_ :))'표기법을 사용하십시오. '# selector'를 사용하면 자동 완성 기능을 사용할 수 있으며, 뭔가 올바르게하지 않으면 원하는 방법을 찾을 수 없다는 경고를 받게됩니다. – keithbhunter
또한 제스처 인식기를'cell' 대신'cell.contentView'에 추가하십시오. – AdamPro13
그래서 내가 가지고있는 것 대신에 다음과 같이 사용해야합니다 : 'let lpgr = UILongPressGestureRecognizer (target : self, action : #selector (longPressAction (_ :)))' –