事件穿透

1.touch事件传递

touchu的VIEW作为第一响应者,接收响应事件;

若是需要传递事件到各个父层,则调用 [super touchesBegan:touches withEvent:event];即可,否则,就只自己响应触摸事件。

2.手势事件传递

会响应叠层VIEW的第一个手势事件

时间: 2024-08-09 20:04:15

事件穿透的相关文章

IE8,input事件穿透

连续加班一个半月,项目昨天晚上12:08终于上线了:然后处理了一些新发现的bug:一直熬到凌晨五点半才吃点宵夜回家睡觉.然后下午这会过来上班:回想昨晚的场景,真的跟打仗一样..然后发现了一个比较有意思的bug:称之为"事件穿透"!,问题只在纯IE8浏览器下重现(IE9,10,11的的IE8模式切换不重新). 场景大概是这样的:首页有一个浮动的登录框:然后页头有一个导航(有链接),下面还有一个轮播图,而且有链接:如下图所示: 然后,IE8下,当你准备在输入框输入时,忽然发现点了一下,页面

如何让触摸事件穿透一个View

偶然间发现,如何屏蔽或者让触摸事件穿透一个view是一个很简单的事情. 现象: 源码: // // ViewController.m // UserInteraction // // Created by YouXianMing on 14/10/23. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import "ViewController.h" @interface ViewController () @

支持事件穿透?使用pointer-events样式

使用绝对定位元素,让元素A完全盖住元素B时,如何通过元素A来响应元素B的事件呢? 上图可以用下面的SVG代码来实现: <svg width="200" height="180"> <rect x="50" y="50" width="50" height="50" fill="#f34b5b" onclick="alert('Clicked

转载:事件穿透

前言 小伙伴们在开发中是否遇到过这样的需求呢,一个控件的某个部分被另外一个控件遮挡住,当点击这个重叠部分时,需要响应被遮盖控件的点击事件,就如下图所示 当我们点击区域3时,响应蓝色按钮的点击事件,点击区域1和2时,响应红色按钮的点击事件,对于区域1和3没什么好说的,那如何让红色按钮响应区域2的点击呢?这就是笔者今天要讲的内容. 事件传递 大家应该都知道,事件从应用程序开始,按照从上到下的顺序(UIApplication -> UIWindow -> rootViewController -&g

屏幕事件穿透和拦截分析

事件穿透和拦截机制同样并不是deviceone平台独有的,这个机制几乎是所有和UI相关的技术都共有,了解一下非常有必要.我们会以一个简单的例子来描述事件处理机制运行的过程. 屏幕事件处理机制 我们先假定是手机屏幕显示一个UI,里面包括了4个View,这些View都是树状结构,父View下包含一个或多个子View,其中最上层的View和屏幕大小是一致的,参考下图: 我们可以看到view1有一个子节点view2,view2包含2个子节点view3和view4. 假如我们点击屏幕一个位置,会产生一个事

cocos 新手引导之事件穿透

游戏中新手引导 一般都是通过蒙版然后突出某一位置,并配合相应动画来实现的.遮罩层有两个需求,一是可以挖个洞,二是这个洞事件可以穿透, 其他区域不能穿透.如果事件不能穿透,那就需要做很多工作来处理相应的响应.穿透之后实际点的就是那个位置,只需要处理遮罩部分应该有的行为 研究了cocos2dx 3.1 的事件系统,发现虽然不能原生支持,但我们可以简单扩展一下就能达到我们的目的 下边是源代码: LayoutTouchBreak.h class LayoutTouchBreak: public Layo

IOS 多个ImageView图片层叠透明区域点击事件穿透

经常用到多个透明图片层叠,但又需要获取不同图片的点击事件,本文实现图片透明区域穿透点击事件 实现人体各个部位点击 [objc] view plain copy - (BOOL) pointInside:(CGPoint)point withEvent:(UIEvent *)event { CGPoint shoulderPoint = [self getNewPoint:point SetImage:shouldImage]; if(CGRectContainsPoint(shouldImage

UGUI 事件穿透规则

UGUI事件分为两大类:点击和拖拽. 点击包括 pointerdown, pointerup. 拖拽包括 begindrag, drag, enddrag. 点击事件无穿透:只会被最上层UI响应,不会向下层传递. 拖拽事件半穿透:透过上层UI直到遇见实现了拖拽事件的第一个UI,并且不会向下层传递. 举例:一堆重叠在同一位置的按钮按层次从上到下依次为A,B,C,D 1,只有最上层的按钮A能收到点击事件.下面的全部被挡住了. 2,给B实现 IBeginDrag, IDrag, IEndDrag接口,

Unity中uGUI的控件事件穿透逻辑

1.正常来说Image和Text是会拦截点击事件的,如果添加EventTrigger的话,就可以响应对应的交互事件. 2.如果Image和Text是一个Button的子控件,那么虽然其会显示在Button上面,但是并不会拦截点击事件.除非是Selectable的,否则子控件不会影响到父控件的点击. 3.如果是跨Panel或者是同级的Image和Text,是会拦截点击事件的,即如果Image在某个Button之上,那么点击Image的事件不会穿透给Button. 4.如果在3的情况下想忽略点击事件

iOS 使点击事件穿透透明的UIView

如图: 悬浮的三个按钮下方有一个可以点击的灰色区域,但是点击按钮之间的透明区域, 这三个按钮的contentView会响应这个点击事件,这时候需要让这个contentView不响应这个点击事件. 解决方法如下(将此方法增加到这个contentView类中即可): - (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ UIView *hitView = [super hitTest:point withEvent:event];