2016-10-10 2 views
0

현재 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:") 

사용 : 대신의

+0

''longPressAction : "'대신'#selector (longPressAction (_ :))'표기법을 사용하십시오. '# selector'를 사용하면 자동 완성 기능을 사용할 수 있으며, 뭔가 올바르게하지 않으면 원하는 방법을 찾을 수 없다는 경고를 받게됩니다. – keithbhunter

+0

또한 제스처 인식기를'cell' 대신'cell.contentView'에 추가하십시오. – AdamPro13

+0

그래서 내가 가지고있는 것 대신에 다음과 같이 사용해야합니다 : 'let lpgr = UILongPressGestureRecognizer (target : self, action : #selector (longPressAction (_ :)))' –

답변

0

는 것은 당신은 대부분의 방법 올바른려고하고있다. 다음 코드 사용 :

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 
    cell.textLabel?.text = "Gesture Recognizer Testing" 
    let lpgr = UILongPressGestureRecognizer(target: self, action: #selector(longPressAction(_:))) 
    lpgr.minimumPressDuration = 2.0 
    lpgr.delegate = self 
    cell.contentView.addGestureRecognizer(lpgr) 
    return cell 
} 

건배!

+1

감사합니다. 많은 도움이되었습니다. 작동했습니다. 이제는 처음 인쇄하는 지 확인하기 위해 수표를 써야합니다. –

+0

건배! 메이트, upvote 및 허용 대답으로 표시하십시오 :) :) –

+0

내 함수 내에서 셀을 만지게 될 줄 알아? 그래서 '셀 1 긴 보도 감지'와 같은 것을 인쇄 할 수 있습니까? –

1

let lpgr = UILongPressGestureRecognizer(target: self, action: #selector(longPressAction(gestureRecognizer:))) 
+0

고마워, 지금 일하고있어! :) –