中心控制器具有滚动视图时的 MMDrawerController 平移手势行为

Posted

技术标签:

【中文标题】中心控制器具有滚动视图时的 MMDrawerController 平移手势行为【英文标题】:MMDrawerController pan gesture behaviour when center controller has Scroll View 【发布时间】:2015-07-22 12:23:17 【问题描述】:

我正在向使用过MMDrawerController的人寻求帮助。

我已经下载了example project,它有一个表格视图作为中心视图控制器。平移手势正常工作 - 只有当手势大部分是水平的时,它才会开始打开抽屉。滚动表格视图时抽屉不会打开。这是我想要的行为。

但是当我设置我自己的项目并且有 scrollViewtableView - 如果滚动手势甚至具有最轻微的水平分量而令人困惑且几乎无法使用,则上下滚动它们会打开抽屉。

我试图通过代码了解示例项目的不同之处,但没有成功。我没有发现任何手势识别器回调覆盖或类似改变手势行为的东西。

考虑到MMDrawerController,我已经查看了关于 SO 的线程,但没有找到类似的东西。

我知道我可以重写 MMDrawerController 子类中的一些东西来完全改变手势识别并且可能通过这种方式实现所需的行为,但我不想在这里重新发明***。可能有一些我忽略的简单答案。

【问题讨论】:

【参考方案1】:

我找到了问题的根源。它与 MMDrawerController 无关。在我的项目中,我有一个实现gestureRecognizer 委托方法的类别,该方法实际上覆盖了所有ViewController 中的实现。在这种情况下,我应该使用子类而不是类别,这是一个非常糟糕的设计。

【讨论】:

以上是关于中心控制器具有滚动视图时的 MMDrawerController 平移手势行为的主要内容,如果未能解决你的问题,请参考以下文章

滚动时的 iOS TableView 索引值

获取嵌入在滚动视图中的单元格的中心点

MKMapView 在滚动到底部并触发控制中心后停止滚动

子类化 UIScrollView 时的奇怪行为

具有滚动效果的页面视图控制器与启用分页的 UIScrollView

在 ScrollView 中按下时的中心元素