UItableviewcell中的pangesture,表格滚动无法快速工作
Posted
技术标签:
【中文标题】UItableviewcell中的pangesture,表格滚动无法快速工作【英文标题】:pangesture in UItableviewcell, table scroll is not working in swift 【发布时间】:2017-07-18 03:41:51 【问题描述】:我想在 UItableviewCell 内左右滑动 UIview,我使用了 UIPanGestureRecognizer 来实现这一点,下面是附加的源代码。但是,当我尝试滚动 UItableview 时,我的 Uiview 可以上下移动并且无法滚动到 UItableviewcell 即 Superview。谁能告诉我如何管理?提前致谢?
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 10
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "CardSwipeTVCell") as! CardSwipeTVCell
let tapGesture : UIPanGestureRecognizer!
tapGesture = UIPanGestureRecognizer(target: self, action: #selector(ViewController.tapEdit(_:)))
cell.cardView.addGestureRecognizer(tapGesture!)
cell.cardView.tag = indexPath.row
tapGesture!.delegate = self
cell.selectionStyle = .none
return cell
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
func tapEdit(_ recognizer: UIPanGestureRecognizer)
print(recognizer.view?.tag as Any)
let sender = recognizer.view?.tag as Any
let indexPath = IndexPath(row: sender as! Int, section: 0)
let cell = self.cardTableView.cellForRow(at: indexPath) as? CardSwipeTVCell
cell?.cardView.backgroundColor = UIColor.black
let card = recognizer.view!
let point = recognizer.translation(in: view)
card.center = CGPoint(x: (cell?.center.x)! + point.x, y: (cell?.center.y)! + point.y)
if recognizer.state == UIGestureRecognizerState.ended
UIView.animate(withDuration: 0.3, animations:
card.center = (cell?.center)!
)
另一个问题是当我点击第二个单元格时,我的视图消失了?非常感谢您的帮助。
【问题讨论】:
【参考方案1】:override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool
if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer
//let translation = panGestureRecognizer.translation(in: superview!)
let translation = panGestureRecognizer.translationInView(superview)
if fabs(translation.x) > fabs(translation.y)
return true
return false
return false
在您的类中添加上述委托方法。这将在 tableview 视图垂直滚动时停止 pangesture。
【讨论】:
以上是关于UItableviewcell中的pangesture,表格滚动无法快速工作的主要内容,如果未能解决你的问题,请参考以下文章
确定 UITableViewCell 中的 UIButton
UITableViewCell 事件中的 UIButton 不起作用
UITableViewCell 中的 UICollectionView
UITableVIewCell 中的 UIScrollView 不会滚动