C2.16.1touch event types设计研究

触摸事件通常分为开始、移动、结束、取消四种类型

别名: 触摸事件 · touchstart · touchend · touchcancel

概念解释

操作系统把一次手指接触切成应用可消费的离散事件。常见四分法是:开始(touch begin / touchstart)、移动(touch move)、结束(touch end)和取消(touch cancel)。开始对应接触建立,移动对应位置更新,结束对应手指离开并完成这条序列;取消是另一种终止,表示序列被中止而不是被完成。这是状态机接口,不是对皮肤形变或电容采样的完整物理记录。

机制

控制器持续报点,但窗口、控件和手势识别器不能直接读原始采样流。系统把连续接触编码成事件,好让按钮、滚动和绘图共用同一套生命周期。四种类型覆盖接触存在期间的全部结局:正常抬起走结束,被抢走或被打断走取消。若只有开始和结束,权限弹窗盖住屏幕、系统手势接管轨迹时,应用仍会以为手指按着。移动事件是持续位置通道,没有它就无法估计速度或做拖动。取消独立成类,是因为它与结束的提交语义相反:结束往往可以提交,取消必须回滚候选。

怎么研究

在仪器化应用里记录完整事件流,再用控制中心、来电界面、权限对话框和系统返回手势去打断一次按住。自变量包括中断源、是否多指、目标是否可滚动、按下时是否已进入拖动。因变量包括事件类型序列、结束与取消的比例、状态机是否回到空闲、以及抬起后是否误提交。干净实验室点按几乎只产生开始—结束,会系统性低估取消路径;要把打断条件做成可重复的实验操作,而不是等偶发系统事件。

边界

四分法是移动系统和 Web 触控模型的常见形状,不是物理定律。游戏引擎、自定义驱动或高层手势 API 可能只交出“捏合开始/更新/结束”,应用看不到逐点的四类事件。鼠标与部分触控笔走 pointer 流,取消条件也不同。把桌面的 down/up 直接映射到触摸,会漏掉第四种终止。嵌入式电阻屏或把整段接触合成一条命令的设备,同样不必暴露这套接口。

怎么落地

  • 把按钮、滑块、绘图都建成同一状态机:开始进入候选,移动更新,结束才提交,取消则回滚。
  • 在真机上按住目标,用控制中心和下拉通知各打断一次,确认既没有提交也没有卡住高亮。
  • 日志把 end 与 cancel 分开计数;取消率突然升高时,先查系统抢占和窗口焦点,而不是先改按钮尺寸。

延伸

  • 同组C2.16.2 取消事件由系统在来电、通知等场景下打断触摸序列时触发 · C2.16.3 应用必须处理取消事件,否则会遗留未完成的按压态 · C2.16.4 多点触控下每个触点独立携带开始移动结束的完整生命周期
  • 相邻C2.07 按下触发与抬起触发 · C2.08 触摸的取消手势
  • 站内检索touch event · touchcancel · pointer lifecycle

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C2.16.1