我在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()
}
}
}
答案 0 :(得分:0)
将panGestureRecognizer
的代理设置为您的视图控制器,并在视图控制器中实现-gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
。
返回YES
应允许两者同时开火。
如果没有,那么您可能需要查看委托方法-gestureRecognizer:shouldRequireFailureOfGestureRecognizer:
和-gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:
以获得更精细的颗粒控制。
在查看SWRevealViewController
后,看起来他们有自己的委托方法。
-revealController:panGestureRecognizerShouldRecognizeSimultaneouslyWithGestureRecognizer:
代替-gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: