TapGesture 响应区域问题

图片描述

如图,我把红色界面叫redView,后面那个叫backView。现在我[backView addSubview:redView];
我向backView添加了UITapGestureRecognizer。但是此时我点击redView,同样会触发那个Tap的方法。如何让redView不响应Tap。ps:不要让redView.userInteractiveEnabled = NO. 我还要对redView添加其他手势

阅读 5.3k
4 个回答

最简单也是最笨的方法就是,直接在执行操作之前获取tap的坐标
CGPoint newPoint = [theGesture locationInView:backView];
然后如果是在redView的范围之内,直接return。

还有一个很笨的方法> < 在背景垫一个透明的 View,然后把 Tap 方法添加到这个透明的 View 上。——适用于红色界面这类的界面多或不规则的情况。

还有一个方法就是 在redView加一个Tap方法,不过实现为空就是了

新手上路,请多包涵

使用-(UIView )hitTest:(CGPoint)point withEvent:(UIEvent )event

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题