问题描述:
如图,我在进行一个阅读器项目的开发时,遇到了一个问题,我需要在点击红色区域时弹出一个菜单,因此我在该区域加了一个View,然而,当我在这个区域滑动时,滑动手势被红色区域拦截,手势无法传递到下面的UIPageViewController的View上。
我希望能够使得这个区域只对点击事件作出响应而忽略滑动手势,请问应该如何处理。
问题描述:
如图,我在进行一个阅读器项目的开发时,遇到了一个问题,我需要在点击红色区域时弹出一个菜单,因此我在该区域加了一个View,然而,当我在这个区域滑动时,滑动手势被红色区域拦截,手势无法传递到下面的UIPageViewController的View上。
我希望能够使得这个区域只对点击事件作出响应而忽略滑动手势,请问应该如何处理。
1 回答834 阅读
2 回答628 阅读
1 回答615 阅读
2 回答618 阅读
1 回答706 阅读
647 阅读
简单版: 两步走
通过传递链,把弹窗的响应,交给 PagedController 的内容视图
然后,在内容视图中计算坐标,处理事件
简单版代码: https://gitee.com/dengshaoxia...
因为是菜单,为了避免大量的数学计算,为了避免还要做手机适配
在菜单下面,PagedController 的视图顶层添加类似透明菜单,坐标和大小一致。
然后就重写菜单上每一个按钮的 hitTest, 将其 responder 交给下层的透明菜单。
一一对应。
这样就方便了。
只需要建设同样的结构,和重写 hitTest 方法。
touchesBegan ,这就不用重写了。
你说的问题不存在,
系统本来就是这样默认实现的
更多见 demo:
https://gitee.com/dengshaoxia...