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标签颜色