【发布时间】:2014-10-29 18:47:50
【问题描述】:
我正在构建的应用程序有一个全屏MKMapView,并在其上放置了另一个UIView 子类,也是全屏且完全透明的。我希望UIView 子类处理单点触摸手势,例如点击和单指拖动,并忽略其他任何内容。这将允许MKMapView 使用其他方式进行交互,尤其是通过禁用 3D 功能用两根手指进行平移/滚动。
我的问题是 MKMapView 不使用touchesXXX:withEvent: 方法进行用户交互。因此,我无法在视图上的这些方法中检测到触摸计数并转发到地图。同样,hitTest:withEvent: 方法不能用于确定哪个视图处理触摸,因为那里的 UIEvent 对象返回一个空的触摸集。
我考虑过让所有触摸都通过视图向前并使用手势识别器来处理事件,但我确实需要覆盖视图上的单点触摸/拖动对地图视图没有影响。
有没有办法根据触摸次数来完成这种过滤?或者一种禁用地图视图上的单点触控手势的方法?
【问题讨论】:
-
如果您将单指点击并拖动识别器到地图视图本身,它是否有效?
-
所以基本上通过替换它们来覆盖/取消地图视图上的现有手势?
-
是的。一秒钟,我在 Xcode 中查看这个。
-
我也试过了,似乎没有效果.. 从未调用过手势(似乎地图视图的识别器先吞下了手势)
-
我也是。甚至将它们设置在父视图上。
标签: ios objective-c cocoa-touch