iOS - 事件处理全过程(补充)
2015-07-16 00:00
267 查看
事件处理的完整过程
1> 先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件。2> 调用最合适控件的touches….方法
3> 如果调用了[super touches….];就会将事件顺着响应者链条往上传递,传递给上一个响应者
4> 接着就会调用上一个响应者的touches….方法
如何判断上一个响应者
1> 如果当前这个view是控制器的view,那么控制器就是上一个响应者2> 如果当前这个view不是控制器的view,那么父控件就是上一个响应者
响应者链的事件传递过程
如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父视图在视图层次结构的最顶级视图,如果也不能处理收到的事件或消息,则其将事件或消息传递给window对象进行处理
如果window对象也不处理,则其将事件或消息传递给UIApplication对象
如果UIApplication也不能处理该事件或消息,则将其丢弃
[b]响应者[/b]
touches方法做法是将事件顺着响应着链条向上传递,交给上一响应者进行处理。
默认方法中[super touches... withEvent..];
控件能响应事件则必须实现重写touches方法,在其方法中处理事件,实现响应。
多控件处理的原则是1在响应者链条上,且是其控件的父控件2且实现touches方法。
相关文章推荐
- IOS系统通知名(持续更新)
- ios-tableviewcell初始化为什么要用static NSString *str = @"mycell"中得static
- iOS设计模式-单例
- 苹果开发 笔记(50)GCD
- IOS面经系列(二)什么是id ,为什么要用id,在哪用id
- ios开发-inputView和inputAccessoryView
- iOS Scrollview中的AutoLayout(纯IB)
- 基于XMPP的IOS聊天客户端程序
- ios系列——权限
- IOS 链式调用
- iOS 监听键盘高度,输入框上升
- ios开发常用的第三方库
- iOS开发常用的第三方类库
- [纯代码/OC]IOS开发入门到进阶笔记20150715
- iOS常用控件
- iOS中的c第二天分支语句
- iOS中的c第一天基本数据类型
- IOS Quartz2D 相关
- iOS中runtime运行机制解析
- IOS学习笔记-OC初体验