• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 将触摸事件转发到另一个被接收事件的 View 部分覆盖的 View

[复制链接]
菜鸟教程小白 发表于 2022-12-12 17:09:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我到处寻找这个问题的解决方案,但我的情况似乎有所不同。

我有两个 View ,具体来说,一个 GMSMapView(来自 google maps api 的 map View )占据整个屏幕,另一个 View 位于 map 顶部(不是它的 subview ,而是部分覆盖它)。发生的情况是,当我用一根手指从第二个 View 顶部开始捏,另一根手指在 map 顶部捏时, map 没有得到手势。由于第二个 View 有大的透明区域,我还希望如果我用一根手指在这些区域上平移, map 将获得手势(移动)但保持按钮(非 map View 的 subview )可点击。

我已经尝试在非 map View 的 View 类文件中保留对 map View 的引用并实现了 hitTest 方法,但 map 仍然没有得到任何接触......非常感谢

- (UIView *)hitTestCGPoint)point withEventUIEvent *)event
{
    UIView *hitView = [super hitTest:point withEvent:event];

    // 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;
}



Best Answer-推荐答案


在您的第二个 View 中覆盖 pointInside 方法,如果该点出现在您的 View 的某些可点击部分(如按钮等 - 检查该点是否在按钮框架内),则返回 YES,否则返回 NO。
因此,如果用户点击第二个 View ,并且如果您在 pointInside 中返回 NO,则 mapview 的 pointInside 将被调用,因此它将接收事件。如果返回 YES,mapView 的 poinInside 将不会被调用,因此 mapView 不会收到事件。
希望这会有所帮助。

关于ios - 将触摸事件转发到另一个被接收事件的 View 部分覆盖的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20552129/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap