Swift:单元格 TableviewCell 中的手势不起作用

Posted

技术标签:

【中文标题】Swift:单元格 TableviewCell 中的手势不起作用【英文标题】:Swift: Gesture in cell TableviewCell not working 【发布时间】: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? 这是我要在单元格中移动的图像视图 蓝点是单元格? 是的,它在单元格中的图像视图 【参考方案1】:

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

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

以这种方式设置委托。

pan.delegate = cell

【讨论】:

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

以上是关于Swift:单元格 TableviewCell 中的手势不起作用的主要内容,如果未能解决你的问题,请参考以下文章

XCode 7.1.1 TableViewCell 的内容视图比单元格窄

IOS swift我可以从TableViewCell中获取当前可见视图吗

在 TableViewCell 中保持 UISwitch 的状态:Swift

在行选择Swift 3上设置TableViewCell标签颜色

使用 swift 在 tableviewcell 内创建 tableview

TableViewCell 不显示 imageView