panGestureRecognizer和表格滑动

时间:2014-08-06 09:37:48

标签: swift uipangesturerecognizer swrevealviewcontroller

我在Swift中有一个UITableViewController。这有一个大表,具有根据需要滑动和删除行的功能。当它独立时,它可以正常工作。

我还有一个带有SWRevealViewController框架的侧边栏功能。一旦我将所需的panGestureRecognizer添加到控制器,那么表格滑动就不再起作用了。

我认为这是冲突,但我不知道如何解决它,因为表格滑动并没有以任何方式命名。我希望你能帮忙吗?

修改

当前代码:

func gestureRecognizer(UIGestureRecognizer,
        shouldRecognizeSimultaneouslyWithGestureRecognizer:UIGestureRecognizer)
-> Bool {
            return true
    }

    func gestureRecognizer(UIGestureRecognizer,
        shouldBeRequiredToFailByGestureRecognizer:UIGestureRecognizer) -> Bool {
            return true
    }

    override func viewDidAppear(animated: Bool) {



        // Create sidebar button
        sidebutton.addTarget(self.revealViewController(), action:"revealToggle:", forControlEvents:UIControlEvents.TouchUpInside)

        // Add gestures for sidebar functionality
        self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer());

    }

// Handle deleting via row
    func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!) {


        // If they want to delete
        if editingStyle == UITableViewCellEditingStyle.Delete {

            //Delete method

            // Any errors? - KILL IT
            var error: NSError? = nil
            if !context.save(&error) {
                abort()
            }

        }

    }

1 个答案:

答案 0 :(得分:0)

panGestureRecognizer的代理设置为您的视图控制器,并在视图控制器中实现-gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

返回YES应允许两者同时开火。

如果没有,那么您可能需要查看委托方法-gestureRecognizer:shouldRequireFailureOfGestureRecognizer:-gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:以获得更精细的颗粒控制。


在查看SWRevealViewController后,看起来他们有自己的委托方法。

将使用

-revealController:panGestureRecognizerShouldRecognizeSimultaneouslyWithGestureRecognizer:代替-gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: