【问题标题】:Swift: Gesture in cell TableviewCell not workingSwift:单元格 TableviewCell 中的手势不起作用
【发布时间】:2018-06-09 21:49:09
【问题描述】:

我想在 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)
}

它不起作用,我无法拖动我的图像视图

我应该为我的表格视图添加什么来执行我的手势?

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

谢谢

Result

【问题讨论】:

  • 什么是dragButton?
  • 这是我要在单元格中移动的图像视图
  • 蓝点是单元格?
  • 是的,它在单元格中的图像视图

标签: ios swift uitableview uipangesturerecognizer


【解决方案1】:

在你的 tableviewcell 类中尝试这个实现委托UIGestureRecognizerDelegate

我认为问题就在这里。 pan.delegate = self as? UIGestureRecognizerDelegate

以这种方式设置委托。

pan.delegate = cell

【讨论】:

  • 不工作.. 看看我的帖子的图片。我想要中间的蓝色圆形图像视图,我想向右或向左拖动它。当我向右滑动时,左边的图像变大,当我向左滑动时,右边的图像变大
  • 这有两个部分。第一:你的平移手势识别器是否回调了 action 方法?第二:动作方法代码是在移动视图吗? Sheik 是正确的,细胞需要成为代表。实际上,我会在单元格的 awakeFromNib() 方法中添加手势识别器。此外,您不需要将 self 类型转换为采用该协议。您的代码应明确采用该协议。
  • 应该可以。可以和我分享代码文件 mshauket.developer@gmail.com
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多