当中心控制器具有滚动视图时,MMDrawerController 平移手势行为
MMDrawerController pan gesture behaviour when center controller has Scroll View
我正在向使用过 MMDrawerController
的人寻求帮助。
我已经下载 example project 它有一个 table 视图作为中心视图控制器。平移手势正常工作 - 只有当手势大部分是水平的时候它才会开始打开抽屉。滚动 table 视图时抽屉不会打开。这是我想要的行为。
但是当我设置自己的项目时,有 scrollView
或 tableView
- 如果滚动手势有最轻微的水平分量,上下滚动它们会打开抽屉,这很混乱,几乎没有可用。
我试图通过查看代码来了解示例项目的不同之处,但没有成功。我没有发现任何手势识别器回调覆盖或类似的东西正在改变手势行为。
考虑到 MMDrawerController
,我查看了 SO 上的线程,但没有找到任何类似的东西。
我知道我可以重写 MMDrawerController
子类中的某些内容以完全更改手势识别并可能以这种方式实现所需的行为,但我不想在这里重新发明轮子。可能有一些简单的答案被我忽略了。
我找到了问题的根源。它与 MMDrawerController 无关。在我的项目中,我有一个类别实现了 gestureRecognizer 委托的方法,该方法实际上覆盖了所有 ViewController 中的实现。在这种情况下我应该使用子类而不是类别,这是一个非常糟糕的设计。
我正在向使用过 MMDrawerController
的人寻求帮助。
我已经下载 example project 它有一个 table 视图作为中心视图控制器。平移手势正常工作 - 只有当手势大部分是水平的时候它才会开始打开抽屉。滚动 table 视图时抽屉不会打开。这是我想要的行为。
但是当我设置自己的项目时,有 scrollView
或 tableView
- 如果滚动手势有最轻微的水平分量,上下滚动它们会打开抽屉,这很混乱,几乎没有可用。
我试图通过查看代码来了解示例项目的不同之处,但没有成功。我没有发现任何手势识别器回调覆盖或类似的东西正在改变手势行为。
考虑到 MMDrawerController
,我查看了 SO 上的线程,但没有找到任何类似的东西。
我知道我可以重写 MMDrawerController
子类中的某些内容以完全更改手势识别并可能以这种方式实现所需的行为,但我不想在这里重新发明轮子。可能有一些简单的答案被我忽略了。
我找到了问题的根源。它与 MMDrawerController 无关。在我的项目中,我有一个类别实现了 gestureRecognizer 委托的方法,该方法实际上覆盖了所有 ViewController 中的实现。在这种情况下我应该使用子类而不是类别,这是一个非常糟糕的设计。