问题描述
我有一个带有自定义 TableViewCell 的 UITableView。我使用平移手势来识别位置,同时将手指向左和向右移动。根据手指位置,我更改了此 TableViewCell 中标签中的一些值。这真的很棒。但突然间我无法上下滚动 TableView。我已经阅读了原因。 Swift 不能同时使用两个手势识别器。我发现了很多人如何遇到几乎相同问题的例子。我尝试了很多,但我无法解决我的问题。我使用 Swift 5。你能更准确地描述一下如何解决我的问题吗?非常感谢
import UIKit
class TVCLebensmittel: UITableViewCell {
override func awakeFromNib() {
super.awakeFromNib()
let gestureRecognizer = UIPanGestureRecognizer(target: self,action: #selector(handlePan))
self.addGestureRecognizer(gestureRecognizer)
}
@IBAction func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) {
if gestureRecognizer.state == .began {
let translation = gestureRecognizer.translation(in: self)
// Put my finger on the screen
} else if gestureRecognizer.state == .changed {
let translation = gestureRecognizer.translation(in: self)
// While moving my finger ...
} else if gestureRecognizer.state == .ended {
let translation = gestureRecognizer.translation(in: self)
// Lift finger
}
}
...
}
解决方法
解决方案是将平移手势插入tableview而不是tableviewcell。所以我可以听到左右平移以及tableview的上下移动。