我快要绝望了,试图实现如此简单的事情。
我有一个带有菜单的视图,当它使用水平滑动手势时,使用 touchEvents 从左侧滑动。我不使用手势识别器,我只是使用 touchesBegan、touchesMoved 等。并跟踪开始触摸位置、中间位置和结束触摸位置之间的 x 坐标差。它工作得很好。
但是,当我在 body 中有一个 UITableView 时,触摸事件不再沿着层次结构向上到达管理菜单的视图。我试图通过将触摸传递给 superview/nextResponder 来解决这个问题,这种方法很有效,但我看到了一个 touchesBegan 和 2 个 touchesMoved 调用,然后它才停止在层次结构中进一步处理。
具体来说,我有一个 SlideMenuView,其中有一个菜单视图和一个正文视图。在正文视图中,我在某些时候有 UITableView。我看到(通过 NSLog)touches* 方法从头到尾都被调用得很好。我将它们传递给 nextResponder 并开始在 SlideMenuView 中看到它们 - 但在两次调用 touchesMoved 之后,它们似乎在 SlideMenuView 中停止,但在我的 UITableView 中继续。
我正在重写 UITableView 来执行此操作,但我在其中没有进行任何更改。
我知道这一定是可能的,就像在 Facebook 应用程序中一样。您可以在身体的任何地方滑动,可以水平滚动并显示菜单。我希望同样的事情在这里自然发生,但看起来好像发生了一些奇怪的事情,并且 UITableView 正在消耗或破坏这些事件。
有人可以帮我解决这个问题吗?一定有人以干净的方式实现了这一点。