将同一个手势中的一个视图拖到另一个视图

问题描述:

我试图在Apple的iOS 10 Maps应用中重现按钮表。大部分工作。我一直在寻找this SO postPulley on GitHub,但他们都没有解决我的问题。将同一个手势中的一个视图拖到另一个视图

当纸张完全打开时,可以将纸张的内容作为UITableView滚动,但当用户试图向下滚动(UITableViewcontentOffset为负数时),手势正在拖入而不是UITableView。手势从拖动UITableView到拖动工作表无缝地变化。

在手势委托人的shouldRecognizeSimultaneouslyWith中禁用滚动UITableView,但这只在手势开始时调用。

我无法控制UITableViewpanGestureRecognizer,所以我不能捕捉手势并确定它应该移动的视图。

我该如何改变什么UIGestureRecognizer应该在手势中间识别触摸?

screenshot of Apple's iOS 10 Maps app

+0

不能你实现shouldRecogniseGesture为您定制锅,并返回tableView.contentOffset == 0 – SeanLintern88

尝试

override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { 
    if gestureRecognizer == myCustomPanGesture { 
     return self.tableView.contentOffset == 0 
    } 
    return true 
} 
+0

这将导致两个的tableview和片材是滚动一样本。在工作表被拖拽时,UITableView的contentOffset正在增长。这也没有解决;如果手势开始在正确的“contentOffset”处拖动,则当contentOffset达到零时,手势将改变为拖动工作表。 – Wiingaard

+0

嗯,它可能是你必须创建一个不可见的视图与平底锅上,并指定翻译的地方。 – SeanLintern88

+0

但是,当你给它一个滑动的时候,我会放弃'UITableView'的滚动效果,并且它是自由运行的,它会逐渐降低速度。对? – Wiingaard