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