0

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

我还有一个带有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()
            }

        }

    }
4

1 回答 1

0

将委托设置为panGestureRecognizer您的视图控制器并-gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:在您的视图控制器中实现。

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

如果没有,那么您可能需要查看委托方法-gestureRecognizer:shouldRequireFailureOfGestureRecognizer:-gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:进行更细粒度的控制。


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

-revealController:panGestureRecognizerShouldRecognizeSimultaneouslyWithGestureRecognizer:将被用来代替-gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

于 2014-08-06T09:58:26.920 回答