ios - 将触摸事件转发到另一个被接收事件的 View 部分覆盖的 View
<p><p>我到处寻找这个问题的解决方案,但我的情况似乎有所不同。</p>
<p>我有两个 View ,具体来说,一个 GMSMapView(来自 google maps api 的 mapView )占据整个屏幕,另一个 View 位于 map 顶部(不是它的 subview ,而是部分覆盖它)。发生的情况是,当我用一根手指从第二个 View 顶部开始捏,另一根手指在 map 顶部捏时, map 没有得到手势。由于第二个 View 有大的透明区域,我还希望如果我用一根手指在这些区域上平移, map 将获得手势(移动)但保持按钮(非 mapView 的 subview )可点击。</p>
<p>我已经尝试在非 mapView 的 View 类文件中保留对 mapView 的引用并实现了 hitTest 方法,但 map 仍然没有得到任何接触......非常感谢</p>
<pre><code>- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
UIView *hitView = ;
// If the hitView is THIS view, return the map instead
if (hitView == self)
{
return self.targetView; //the map view
}
// Else return the hitView (as it could be one of this view's buttons):
return hitView;
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>在您的第二个 View 中覆盖 pointInside 方法,如果该点出现在您的 View 的某些可点击部分(如按钮等 - 检查该点是否在按钮框架内),则返回 YES,否则返回 NO。<br/>
因此,如果用户点击第二个 View ,并且如果您在 pointInside 中返回 NO,则 mapview 的 pointInside 将被调用,因此它将接收事件。如果返回 YES,mapView 的 poinInside 将不会被调用,因此 mapView 不会收到事件。<br/>
希望这会有所帮助。</p></p>
<p style="font-size: 20px;">关于ios - 将触摸事件转发到另一个被接收事件的 View 部分覆盖的 View ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/20552129/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/20552129/
</a>
</p>
页:
[1]