面试总结 - 响应链

事件的传递:(父控件到子控件)寻找合适的view。

当发生触摸事件时,runloop会通知UIApplication处理,UIApplication将该事件加入到事件队列里,
UIApplication再从事件队列里取出最前面的事件(FIFO),把事件传递程序的主窗口UIWindow处理,
UIWindow在试图层中找到最合适的view处理事件。

寻找最合适的view:
A.首先判断自己是不是可以响应事件
1.alpha <0.01;
2.userInteractionEnabled = NO;
3.hidden = YES.
B.触摸点是否在我身上
C.从后往前遍历子控件重复之前的两个步骤
D.如果没有符合条件的子控件,那么自己就是最合适的view

事件的响应:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值