Swift:单元格中的手势TableviewCell无效

时间:2018-06-09 21:49:09

标签: ios swift uitableview uipangesturerecognizer

我想在UITableViewCell中添加UIGestureRecognizer,但它不起作用。

这是我的代码:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    //On lien le TableViewCell
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? FeedCell
    cell?.selectionStyle = .none

    let pan = UIPanGestureRecognizer(target: self, action: #selector(cell?.handlePan(recognizer:)))
    pan.delegate = self as? UIGestureRecognizerDelegate
    cell?.dragButton.addGestureRecognizer(pan)

    cell?.view(post: posts[indexPath.row], user: users[indexPath.row]); //On passe l'objet a l'index i a la fonction view du TableViewCell pour l'affichage

    return cell!;
}

和tableviewcell

@objc func handlePan(recognizer: UIPanGestureRecognizer) {
    let translation = recognizer.translation(in: dragButton)

    recognizer.view!.center = CGPoint(x: recognizer.view!.center.x + translation.x, y: recognizer.view!.center.y + translation.y)

    recognizer.setTranslation(CGPoint.zero, in: self.containerDragView)
}

它不起作用我无法拖动我的imageview

我应该为tableview添加什么来执行我的手势?

当我向右或向左滑动右侧或左侧图像宽度时,我想要的最终结果

谢谢

Result

1 个答案:

答案 0 :(得分:0)

在tableviewcell类中尝试使用此实现委托 datanode: image: bde2020/hadoop-datanode:2.0.0-hadoop2.7.4-java8 volumes: - datanode:/hadoop/dfs/data deploy: mode: global placement: constraints: [ node.role == worker ] volumes: datanode:

我认为问题在这里。 UIGestureRecognizerDelegate

以这种方式设置委托。

pan.delegate = self as? UIGestureRecognizerDelegate