首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >在一个app中间有一个button,在你手触摸屏幕点击后,到这个button收到点击事件,中间发生了什么

在一个app中间有一个button,在你手触摸屏幕点击后,到这个button收到点击事件,中间发生了什么

作者头像
赵哥窟
发布2018-09-13 11:52:59
发布2018-09-13 11:52:59
1.4K0
举报
文章被收录于专栏:日常技术分享日常技术分享
  1. 设备将touch到的UITouch和UIEvent对象打包, 放到当前活动的Application的事件队列中
  2. 单例的UIApplication会从事件队列中取出触摸事件并传递给单例UIWindow
  3. UIWindow使用hitTest:withEvent:方法查找touch操作的所在的视图view

hitTest:withEvent是如何找到对应的View? 1.首先调用当前视图的pointInside:withEvent:方法判断触摸点是否在当前视图内; 2.若返回NO,则hitTest:withEvent:返回nil; 3.若返回YES,则向当前视图的所有子视图发送hitTest:withEvent:消息,(所有子视图的遍历顺序是从top到bottom,即从subviews数组 的末尾向前遍历,直到有子视图返回非空对象或者全部子视图遍历完毕); 4.若第一次有子视图返回非空对象,则hitTest:withEvent:方法返回此对象,处理结束; 5.如所有子视图都返回非,则hitTest:withEvent:方法返回自身(self)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.03.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档