我正在尝试添加滑动手势(向左/向右)以隐藏/显示我的侧菜单。
我在UIView上完美地运行了它,但是在UITableView上遇到了麻烦。

这是将滑动手势添加到TableView的代码:

// Add right swipe gesture recognizer

    let rightSwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "toggleSideMenu")
    rightSwipeGestureRecognizer.direction =  UISwipeGestureRecognizerDirection.Right
    self.timelineTableView.addGestureRecognizer(rightSwipeGestureRecognizer)

    // Add left swipe gesture recognizer
    let leftSwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "toggleSideMenu")
    leftSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirection.Left
    //sideMenuContainerView.addGestureRecognizer(rightSwipeGestureRecognizer)
    self.timelineTableView.addGestureRecognizer(leftSwipeGestureRecognizer)

这是我的选择器方法:
func toggleSideMenu() {
    println("ENTER SWIPE")
    toggleSideMenuView()
}

我也这样做了:
func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle {
    return UITableViewCellEditingStyle.None
}

func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    return false
}

但是,向左或向右滑动时,从不会调用选择器菜单“toggleSideMenu()”。

附注:我还尝试过将这些滑动手势直接添加到我的UITableViewCell上,但效果不佳。

有人有主意吗?非常感谢您的宝贵时间!

最佳答案

感谢Kirit Modi。这是我的问题的解决方案:

添加:

leftSwipeGestureRecognizer.delegate = self
rightSwipeGestureRecognizer.delegate = self

然后添加 UIGestureRecognizerDelegate 委托方法:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
    return true
}

10-06 07:21