事件响应者链传递流程
来源:互联网 发布:做淘宝分销商怎么样 编辑:程序博客网 时间:2024/06/05 16:56
响应者对象
响应者对象是一个能够接受并处理事件的对象。UIResponser是所有响应者对象的积累。该基类定义了一系列编程接口。不但为事件处理进行服务而且还提供了通用的响应行为处理。
UIApplication,UIView,UIViewController都直接或者间接地继承自UIResponser,所有的这些类的实例都是响应者对象。
响应者链处理原则
- 点击检测视图或者第一响应者传递事件或动作消息给它的视图控制器(如果它有的话);如果没有一个视图控制器,就传递给它的父视图。
- 如果一个视图或者它的视图控制器不能处理这个事件或动作消息,它将传递给该视图的父视图。
- 在这个视图层次中的每个后续的父视图遵循上述的模式,如果它不能处理这个事件或动作消息的话。
- 最顶层的视图如果不能处理这个事件或动作消息,就传递给UIWindow对象来处理。
- 如果UIWindow 对象不能处理,就传给单件应用程序对象UIApplication。
如果应用程序对象也不能处理这个事件或动作消息,将抛弃它。
问题: 如果我们想给自定义的UITableViewCell里的UIImageView或者其他类型的视图添加一个点击事件,然后进行跳转。我们该如何处理呢?
解决如下:
@implementation UIView (AliResponder)
- (UIViewController *)viewController {
UIResponder *nextResponder = [self nextResponder]; //获取当前uiview的下一个事件响应者
do {
if ([nextResponder isKindOfClass:[UIViewController class]]) { //如果当前的事件响应者具备push方法,也就是属于
return (UIViewController *)nextResponder; //UIViewController,返回UIViewController
}
nextResponder = [nextResponder nextResponder]; //否则一直寻找下一个响应者
} while (nextResponder);
return nil;
}
- 事件响应者链传递流程
- 响应者链的事件传递过程
- iOS事件传递:响应者链
- 响应者链的事件传递过程
- 事件传递和响应者链
- iOS事件传递与响应者链
- iOS响应者链,事件的传递
- iOS 响应者链,事件的传递
- iOS事件传递 响应者链
- iOS 响应者链,事件的传递
- 事件传递:响应者链条
- oc-事件传递响应链
- 43.事件传递 事件响应者链 touch方法
- iOS事件传递和事件响应链
- iOS事件捕捉与传递,响应者链
- IOS响应者链,事件传递和阻断
- iOS 响应者链事件传递和分发
- iOS事件传递及响应者关系链
- Gallery从最左边开始
- linux系统编译C++程序时头文件和库文件搜索路径
- android4.4+实现MD状态栏并全屏显示内容
- Java程序中作业调度-Quartz
- rem让手机站自适应如此简单
- 事件响应者链传递流程
- Hadoop 序列化
- Android笔记(10)---ViewPager的使用
- JAVA 1.6源码解析-Object类
- zipOpen2_64 unzOpen2_64 return NULL
- Python spynner 解决中文不显示
- oracle sql语句的优化
- 7个现象告诉你手游圈为什么会有寒冬
- 本地上传图片的n种方法