事件传递和响应者链条

一、事件传递:
<1当对象发生触摸事件以后,系统会将该事件加入到一个由UIApplication管理的事件队列中。
<2UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口(keyWindow)
<3主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件,但是这仅仅是整个事件处理过程的第一步。
<4找到合适的视图控件后,就会调用视图控件的touches方法来作具体的事件处理

之前的文章我说过UIView在接收到触摸时间以后,系统会调用相应的方法来响应事件。但有时我们发现UIView不能接收到事件,如果是这种情况,可以从一下几点考虑:
1.不接收用户交互
userInteractionEnabled = NO
2.隐藏
hidden = YES
3.透明
alpha = 0.0 ~ 0.01
提示:UIImageView的userInteractionEnabled默认就是NO,因此UIImageView以及它的子控件默认是不能接收触摸事件的

附上一张图能很好地来说明事件是怎么传递的:
这里写图片描述

二、响应者链条:
1.响应者链条示意图:
这里写图片描述

2..响应者链的事件传递过程:
<1. 如果view的控制器存在,就传递给控制器;
<2. 如果控制器不存在,则将其传递给它的父视图
<3. 在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理
<4. 如果window对象也不处理,则其将事件或消息传递给UIApplication对象
<5.如果UIApplication也不能处理该事件或消息,则将其丢弃。

3.如何寻找下一个响应者?
1> 如果当前这个view是控制器的view,那么控制器就是上一个响应者。
2> 如果当前这个view不是控制器的view,那么父控件就是上一个响应者。

4.如果最合适处理事件的控件不想处理控件,怎么将事件传递给下一个响应者处理?
1> 不重写任何 touches…方法。
2> 在重新的touches…方法中什么也不做,直接调用父类的touches…方法。

5.什么是响应者链和它的作用?
1> 响应者链是一系列的响应者对象连接起来构成的一条链条。它开始于第一响应者和结束应用程序对象。如果第一个响应者不能处理一个事件,它将事件转发给响应者链条的下一个响应者。

2> 可以让一个触摸事件发生的时候让多个响应者同时响应事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
传递函数和响应函数是描述线性时不变系统(LTI系统)的重要概念,它们之间有密切的关系。 传递函数(Transfer Function)是指输入与输出的拉普拉斯变换比值,它表示了系统对输入信号的响应情况。传递函数通常用H(s)或者G(s)表示,其中s是拉普拉斯变量。在离散时间情况下,传递函数通常用Z变换表示,用H(z)或G(z)表示。 响应函数(Response Function)是指系统对于某个特定输入信号的响应,通常用y(t)表示。响应函数可以是系统的时域响应、频域响应或者其他形式的响应。 LTI系统的传递函数和响应函数之间存在以下关系: 1. 时域关系:LTI系统的时域输出响应可以表示为输入信号与系统的冲激响应(或单位脉冲响应)的卷积,即y(t) = x(t) * h(t),其中x(t)是输入信号,h(t)是系统的冲激响应。在拉普拉斯变换或Z变换域,传递函数等于输出和输入的变换比值,即H(s) = Y(s)/X(s)或者H(z) = Y(z)/X(z)。 2. 频域关系:LTI系统的频域响应可以表示为输入信号的变换与系统的频率响应的乘积,即Y(f) = X(f)H(f),其中X(f)和Y(f)分别是输入和输出在频率域的变换,H(f)是系统的频率响应。 因此,传递函数和响应函数是描述LTI系统的两个重要方面,它们之间有密切的关系,可以相互转换。在实际应用中,我们通常使用传递函数来分析和设计系统的性能,而使用响应函数来评估系统的实际效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值