此问题已经在这里有了答案:
我有一个表格视图,该视图通过按一个按钮从我的视图的左侧出现。但是如何通过向左滑动来隐藏它呢?我尝试以编程方式和情节提要创建手势识别器,但这不起作用。我在手势识别器功能中添加了断点,但从未调用过这些断点。
@IBAction func swipeToHideTable(_ sender: UISwipeGestureRecognizer) {
if sender.direction == .left {
hideTableView()
}
}
关于层次结构,如果可以有所作为。表视图是在单独的xib中创建的,它不是viewController,而只是视图。另外,我在该视图中还有一个带有手势识别器的视图。也许这会引起问题?
请在下面使用此功能。更改为self.tableview部分,无论您使用哪个tableview名称。
func addGestures() {
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToGesture))
swipeLeft.direction = UISwipeGestureRecognizerDirection.left
self.tableview.addGestureRecognizer(swipeLeft)
}
func respondToGesture(gesture: UISwipeGestureRecognizer) {
switch gesture.direction {
case UISwipeGestureRecognizerDirection.left :
print("left")
hideTableView()
default:
break
}