响应者链
来源:互联网 发布:linux系统克隆 编辑:程序博客网 时间:2024/05/16 11:28
1.事件分类
触屏事件(Touch Event)
运动事件(Motion Event)
远端控制事件(Remote-Control Event)
2.响应者链条
UIAppliction –> UIWiondw –>递归找到最适合处理事件的控件–>控件调用touches方法–>判断是否实现touches方法–>没递有实现默认会将事件传递给上一个响应者–>找到上一个响应者
3.响应者链的事件传递过程
如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图
在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理
如果window对象也不处理,则其将事件或消息传递给UIApplication对象
如果UIApplication也不能处理该事件或消息,则将其丢弃
4.说明
1、如果最终hit-test没有找到第一响应者,或者第一响应者没有处理该事件,则该事件会沿着响应者链向上回溯,如果UIWindow实例和UIApplication实例都不能处理该事件,则该事件会被丢弃;
2、hitTest:withEvent:方法将会忽略隐藏(hidden=YES)的视图,禁止用户操作(userInteractionEnabled=YES)的视图,以及alpha级别小于0.01(alpha<0.01)的视图。如果一个子视图的区域超过父视图的bound区域(父视图的clipsToBounds 属性为NO,这样超过父视图bound区域的子视图内容也会显示),那么正常情况下对子视图在父视图之外区域的触摸操作不会被识别,因为父视图的pointInside:withEvent:方法会返回NO,这样就不会继续向下遍历子视图了。当然,也可以重写pointInside:withEvent:方法来处理这种情况。
3、我们可以重写hitTest:withEvent:来达到某些特定的目的,下面的链接就是一个有趣的应用举例,当然实际应用中很少用到这些。
- 响应者和响应者链
- 响应者对象和响应者链
- 响应者链
- ios 响应者链
- 响应者链
- 响应者链-iOS
- iOS 响应者链
- 响应者链问题
- iOS 响应者链
- 响应者链
- iOS响应者链
- 响应者链
- UIResponse响应者链
- 9.2 响应者链
- iOS响应者链
- 响应者链
- UI -响应者链
- ios响应者链
- linux镜像下载地址
- 【秀优越(xie e)】原来出题也可以这么恶心。
- 前端开发的基础学习与练习
- 3.15
- POJ 3264 RMQ模版
- 响应者链
- 用列表构建stack 和 队列
- 今天本地调试的时候出现几次com.mchange.v2.resourcepool.CannotAcquireResourceException:
- CPU的利用率是怎么计算的
- 软件测试面试
- LeetCode - Plus One - Frequent
- 监听网络的广播接收者接收两次解决方案
- 前端面试需要掌握的一些知识点
- UVA - 10306 e-Coins