iOS的事件派发
dispatchPreprocessedEventFromEventQueue
先定位;hittest
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
* frame #0: 0x000000010574e565 XibGooo`-[XView hitTest:withEvent:](self=0x00007fddacd1b890, _cmd="hitTest:withEvent:", point=(x = 109, y = 135.5), event=0x000060000033df80) at XView.m:20
frame #1: 0x0000000109dffff7 UIKitCore`-[UIView(Geometry) _hitTest:withEvent:windowServerHitTestWindow:] + 87
frame #2: 0x0000000109dffed1 UIKitCore`__38-[UIView(Geometry) hitTest:withEvent:]_block_invoke + 121
frame #3: 0x00000001069f7c9c CoreFoundation`-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 476
frame #4: 0x0000000109dffa80 UIKitCore`-[UIView(Geometry) hitTest:withEvent:] + 460
frame #5: 0x0000000109dffff7 UIKitCore`-[UIView(Geometry) _hitTest:withEvent:windowServerHitTestWindow:] + 87
frame #6: 0x0000000109dffed1 UIKitCore`__38-[UIView(Geometry) hitTest:withEvent:]_block_invoke + 121
frame #7: 0x00000001069f7c9c CoreFoundation`-[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 476
frame #8: 0x0000000109dffa80 UIKitCore`-[UIView(Geometry) hitTest:withEvent:] + 460
frame #9: 0x0000000109dffff7 UIKitCore`-[UIView(Geometry) _hitTest:withEvent:windowServerHitTestWindow:] + 87
frame #10: 0x0000000109983d44 UIKitCore`-[UIWindow _hitTestLocation:inScene:withWindowServerHitTestWindow:event:] + 194
frame #11: 0x0000000109983a79 UIKitCore`__70+[UIWindow _hitTestToPoint:forEvent:windowServerHitTestWindow:screen:]_block_invoke + 159
frame #12: 0x000000010998377b UIKitCore`+[UIWindow _topVisibleWindowPassingTest:] + 506
frame #13: 0x000000010998397c UIKitCore`+[UIWindow _hitTestToPoint:forEvent:windowServerHitTestWindow:screen:] + 245
frame #14: 0x0000000109983ede UIKitCore`-[UIWindow _targetWindowForPathIndex:atPoint:forEvent:windowServerHitTestWindow:onScreen:] + 200
frame #15: 0x0000000109a20c6a UIKitCore`__startNewUITouch + 658
frame #16: 0x0000000109a208ad UIKitCore`____updateTouchesWithDigitizerEventAndDetermineIfShouldSend_block_invoke.59 + 239
frame #17: 0x0000000109a2e739 UIKitCore`_UIEventHIDEnumerateChildren + 123
frame #18: 0x0000000109a1fe13 UIKitCore`__updateTouchesWithDigitizerEventAndDetermineIfShouldSend + 773
frame #19: 0x0000000109a24db0 UIKitCore`__dispatchPreprocessedEventFromEventQueue + 1013
frame #20: 0x0000000109a281cb UIKitCore`__handleEventQueueInternal + 5948
frame #21: 0x0000000106a34721 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
在发送;window sendevent
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
* frame #0: 0x000000010574e4ed XibGooo`-[XView touchesBegan:withEvent:](self=0x00007fddacd1b890, _cmd="touchesBegan:withEvent:", touches=1 element, event=0x000060000033df80) at XView.m:15
frame #1: 0x0000000109970dff UIKitCore`-[UIWindow _sendTouchesForEvent:] + 2052
frame #2: 0x00000001099727a0 UIKitCore`-[UIWindow sendEvent:] + 4080
frame #3: 0x0000000109950394 UIKitCore`-[UIApplication sendEvent:] + 352
frame #4: 0x0000000109a255a9 UIKitCore`__dispatchPreprocessedEventFromEventQueue + 3054
frame #5: 0x0000000109a281cb UIKitCore`__handleEventQueueInternal + 5948
frame #6: 0x0000000106a34721 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
后委托;next responder
iOS的事件派发的更多相关文章
- Java多线程开发系列之番外篇:事件派发线程---EventDispatchThread
事件派发线程是java Swing开发中重要的知识点,在安卓app开发中,也是非常重要的一点.今天我们在多线程开发中,穿插进来这个线程.分别从线程的来由.原理和使用方法三个方面来学习事件派发线程. 一 ...
- wex5 实战 框架拓展之2 事件派发与data刷新
一 前言 讲完公共data,相信大家对框架级的data组件级绑定有了更新的认识,接下来我们继续深入,以求研究明白wex5的框架能力. 在一个web项目中,其实有一个data, 是基础框架必须的data ...
- 使用lua实现一个简单的事件派发器
设计一个简单的事件派发器,个人觉得最重要的一点就是如何保证事件派发过程中,添加或删除同类事件,不影响事件迭代顺序和结果,只要解决这一点,其它都好办. 为了使用pairs遍历函数,重写了pairs(lu ...
- IOS触摸事件和手势识别
IOS触摸事件和手势识别 目录 概述 触摸事件 手势识别 概述 为了实现一些新的需求,我们常常需要给IOS添加触摸事件和手势识别 触摸事件 触摸事件的四种方法 -(void)touchesBegan: ...
- [置顶] Android源码分析-点击事件派发机制
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17339857 概述 一直想写篇关于Android事件派发机制的文章,却一直没 ...
- IOS——触摸事件 视图检测和事件传递
iPhone上有非常流畅的用户触摸交互体验,能检测各种手势:点击,滑动,放大缩小,旋转.大多数情况都是用UI*GestureRecognizer这样的手势对象来关联手势事件和手势处理函数.也有时候,会 ...
- JS 事件派发器EventDispatcher
在Java和AS中经常用到EventDispatcher,写了一个JS版本的. addListener :添加事件监听器 removeListener:移除事件监听器 dispatchEvent:派发 ...
- IOS 触摸事件分发机制详解
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:MelonTeam 前言 很多时候大家都不关心IOS触摸事件的分发机制的实现原理,当遇到以下几种情形的时候你很可能抓破头皮都找不到解决方案 ...
- Android Touch事件派发流程源码分析
分native侧事件派发到java侧和Framework派发事件到UI,流程看源码即可,此处不赘叙, Native侧派发事件的干活类图如下:
随机推荐
- adb和fastboot的使用
1.前言 随着Android系统的普及,ADB(Android Debug Bridge)逐渐成了Android设备调试的必不可少的一种重要工具,该工具可以完成多种功能,例如跟踪系统日志,上传或下载文 ...
- SQLServer --------- 将sql脚本文件导入数据库
创建数据库方法有两种 第一种通过图形化的操作界面 第二种通过 sql 语句 sql server 如何执行.sql 文件,的原理就是执行sql语句进行创建 打开数据库后找到 最左侧文件 找到需要执 ...
- SQLServer---------使用Excel 往sqlServer数据库中导入数据
1.右击创建好的表选择编辑200行 2.保证Excel的字段顺序与数据中顺序一致 3.选中好了后进行复制 4.打开文本 一个快捷方式 将excel 中的数据 黏贴放到文本中 5.点击sql ...
- 在电脑上部署网站lls 浏览器上访问
在win7 上安装,首先是要进入lls中进行设置,这是第一种方法: 通过图形化的操作方式进行设置, 这个界面中的东西都比较重要,电脑出现问题的话一般在这都可以进行调整,程序和功能可以用来管理你安装的软 ...
- Linux低延迟服务器系统调优
最近做了一些系统和网络调优相关的测试,达到了期望的效果,有些感悟.同时,我也发现知乎上对Linux服务器低延迟技术的讨论比较欠缺(满嘴高并发现象):或者对现今cpu + 网卡的低延迟潜力认识不足(动辄 ...
- 定时删除10天前的Es索引
说明 主要用在索引名为 xxxx-yyyy.MM.dd 这种,可以自定义修改下边的脚本 删除索引shell 创建 delete_es_indices_over_10_day.sh #!/bin/bas ...
- 『正睿OI 2019SC Day1』
概率与期望 总结 老师上午几乎是在讲数学课,没有讲什么和\(OI\)有关的题目,所以我就做了一点笔记. 到了下午,老师讲完了有关知识点和经典模型,就开始讲例题了.前两道例题是以前就做过的,所以没有什么 ...
- SecureCRT上传本地文件到linux
1.使用crt登录到需要操作的linux系统 2.按Alt+P打开sftp传输界面 3.输入pur指令加文件路径,例如:put E://srs-3.0.zip按enter就可以 4.再返回crt界面, ...
- mvc企业微信开发全局配置
protected void RegisterSenparcWork() { var isGLobalDebug = false;//设置全局 Debug 状态 ...
- http的GET方法参数中不能传列表,接收端的key会变
如下 async initTable() { await getHostAttributesForUser({'username': this.username}).then(response =&g ...