UIResponder 类和第一响应者角色
Posted
技术标签:
【中文标题】UIResponder 类和第一响应者角色【英文标题】:UIResponder class and first responder roles 【发布时间】:2011-11-01 02:04:42 【问题描述】:我在UIResponder
类参考中读到:
有两种一般类型的事件:触摸事件和运动事件。
主要的触摸事件处理方法是 touchesBegan:withEvent:、touchesMoved:withEvent:、touchesEnded:withEvent: 和 touchesCancelled:withEvent: ...
但另一篇文章,ios 事件处理指南说:
第一响应者是窗口中第一个接收以下类型事件和消息的视图:运动事件、远程控制事件、动作消息、编辑菜单消息
所以我很困惑,第二个注释说响应者只处理四个事件——不包括触摸事件——而第一个注释说响应者处理触摸事件。
请让我知道我的误解。
【问题讨论】:
【参考方案1】:一次只有一个响应者是第一响应者。此响应者首先查看您引用的四种事件类型。触摸事件总是首先进入被触摸的视图。在您引用的段落之后的几段中对此进行了解释:
当系统传递一个触摸事件时,它首先将它发送到一个 具体看法。对于触摸事件,该视图是由
hitTest:withEvent:
;用于“摇晃”运动事件,远程控制 事件、动作消息和编辑菜单消息,该视图是 第一响应者。
【讨论】:
我认为第一句话说响应者是视图,因为视图也是 UIResponder 的子类。所以 touchesBegan:withEvent: 的 UIResponder 只需使用来自 hittest 的 UIView 的结果。我说的对吗?以上是关于UIResponder 类和第一响应者角色的主要内容,如果未能解决你的问题,请参考以下文章