iOS - 事件处理全过程(补充)

本文详细介绍了iOS中事件处理的完整过程,包括事件对象从父控件到子控件的传递方式,如何调用合适控件的处理方法,以及如何通过响应者链条向上递归传递事件,最终达到事件的有效处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事件处理的完整过程

  • 1> 先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件。

  • 2> 调用最合适控件的touches….方法

  • 3> 如果调用了[super touches….];就会将事件顺着响应者链条往上传递,传递给上一个响应者

  • 4> 接着就会调用上一个响应者的touches….方法

如何判断上一个响应者

  • 1> 如果当前这个view是控制器的view,那么控制器就是上一个响应者

  • 2> 如果当前这个view不是控制器的view,那么父控件就是上一个响应者

响应者链的事件传递过程

  • 如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图
  • 在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理
  • 如果window对象也不处理,则其将事件或消息传递给UIApplication对象
  • 如果UIApplication也不能处理该事件或消息,则将其丢弃

响应者

  1. touches方法做法是将事件顺着响应着链条向上传递,交给上一响应者进行处理。
  2. 默认方法中[super touches... withEvent..];
  3. 控件能响应事件则必须实现重写touches方法,在其方法中处理事件,实现响应。
  4. 多控件处理的原则是1在响应者链条上,且是其控件的父控件2且实现touches方法。

 

转载于:https://www.cnblogs.com/ShaoYinling/p/4649881.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值