将LongPressGestureRecognizer添加到UITableViewCell

时间:2015-07-12 20:29:37

标签: ios swift uitableview selector uilongpressgesturerecogni

我有一个自定义的UITableView单元格,我想为它添加一个长按手势识别器。目前,我这样做:

    longPressGesture.minimumPressDuration = 1.0
    longPressGesture.addTarget(self, action: "testFeedback")
    cell.addGestureRecognizer(longPressGesture)

我是以编程方式进行的,因为我找不到一种很好的方法来检测在IBAction中挖掘了哪个单元格。但是,我很难让它工作,我想通过选择器传递一个参数。我并不反对在故事板中这样做,但会对它有一些指导。

谢谢!

1 个答案:

答案 0 :(得分:1)

testFeedback函数应如下所示

func testFeedback(gestureRecognizer:UIGestureRecognizer) {

    if (gestureRecognizer.state == UIGestureRecognizerState.Ended) {
        var point = gestureRecognizer.locationInView(self.tableView)
        if let indexPath = self.tableView.indexPathForRowAtPoint(point)
        {
            println(indexPath.row) /// long press ended
        }
    }
    else if (gestureRecognizer.state == UIGestureRecognizerState.Began){
           /// long press started
    }
}