iOS - 事件处理全过程(补充)

事件处理的完整过程

  • 1> 先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件。
  • 2> 调用最合适控件的touches….方法
  • 3> 如果调用了[super touches….];就会将事件顺着响应者链条往上传递,传递给上一个响应者
  • 4> 接着就会调用上一个响应者的touches….方法

如何判断上一个响应者

  • 1> 如果当前这个view是控制器的view,那么控制器就是上一个响应者
  • 2> 如果当前这个view不是控制器的view,那么父控件就是上一个响应者

响应者链的事件传递过程

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

响应者

  1. touches方法做法是将事件顺着响应着链条向上传递,交给上一响应者进行处理。
  2. 默认方法中[super touches... withEvent..];
  3. 控件能响应事件则必须实现重写touches方法,在其方法中处理事件,实现响应。
  4. 多控件处理的原则是1在响应者链条上,且是其控件的父控件2且实现touches方法。
时间: 2024-10-26 12:09:39

iOS - 事件处理全过程(补充)的相关文章

Base64编解码Android和ios的例子,补充JNI中的例子

1.在Android中java层提供了工具类:android.util.Base64; 里面都是静态方法,方便直接使用: 使用方法如下: Java代码   // Base64 编码: byte [] encode = Base64.encode("Hello, World".getBytes(), Base64.DEFAULT); String enc = new String(encode); Log.d("","base 64 encode = &qu

《转之微信移动团队微信公众号》iOS 事件处理机制与图像渲染过程

致歉声明: Peter在开发公众号功能时触发了一个bug,导致群发错误.对此我们深表歉意,并果断开除了Peter.以下交回给正文时间: iOS 事件处理机制与图像渲染过程 iOS RunLoop都干了什么 iOS 为什么必须在主线程中操作UI 事件响应 CALayer CADisplayLink 和 NSTimer iOS 渲染过程 渲染时机 CPU 和 GPU渲染 Core Animation Facebook Pop介绍 AsyncDisplay介绍 参考文章 iOS RunLoop都干了什

iOS 事件处理机制与图像渲染过程

iOS 事件处理机制与图像渲染过程 iOS RunLoop都干了什么 iOS 为什么必须在主线程中操作UI 事件响应 CALayer CADisplayLink 和 NSTimer iOS 渲染过程 渲染时机 CPU 和 GPU渲染 Core Animation Facebook Pop介绍 AsyncDisplay介绍 参考文章 iOS RunLoop都干了什么 RunLoop是一个接收处理异步消息事件的循环,一个循环中:等待事件发生,然后将这个事件送到能处理它的地方. 如图1-1所示,描述了

iOS:事件处理机制

官方文档说明:<Event Handling Guide for iOS>,本文参考转载文章,并参照官方文档补充说明. 本篇内容将围绕iOS中事件及其传递机制进行学习和分析.在iOS中,事件分为三类: 触控事件(单点.多点触控以及各种手势操作) 传感器事件(重力.加速度传感器等) 远程控制事件(远程遥控iOS设备多媒体播放等) 这三类事件共同构成了iOS设备丰富的操作方式和使用体验,本次就首先来针对第一类事件:触控事件,进行学习和分析. Gesture Recognizers Gesture

IOS事件处理

在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 •UIView是UIResponder的子类,可以覆盖下列4个方法处理不同的触摸事件 UIEvent可获取是哪个特定的事件 触摸.加速.触摸事件. 默认所有的UIView不支持两个手指.要设置才可以,最好不要 搞多个手指,移动时

5. IOS事件处理方式?

IOS常用事件处理机制,有如下三种方式: 1. 通过IBAction绑定将控件的特定事件绑定到控制器的指定方式,当该控件上发生此事件时,将会触发控件到的对应方法. 示例:就是拖线的方式. 2. 在程序中为UI控件的特定事件绑定事件监听器. 示例 (1) ,  注册事件:[btn addTarget:self action:@selector(onClickBtn:) forControlEvents:UIControlEventTouchUpInside];   (常用) 示例 (2),  删除

初步剖析QT事件处理全过程(Windows)

一.说起Qt事件处理,在windows平台下,当然离不开Win32: Win32程序的基本结构: 1.注册窗口: 2.创建窗口: 3.启动由GetMessage和DispatchMessage构成的事件循环: 4.被注册的回调函数 WndProc 负责相应各类事件: Windows会为当前执行的每个Windows程序维护一个消息队列: 以上即简单介绍Windows消息处理流程: 二.QT事件入口类: QApplication :public QGuiApplication :public QCo

iOS事件处理之七种手势

今天为大家介绍一下IOS 的七种手势,手势在开发中经常用到,所以就简单 通俗易懂的说下, 话不多说,直接看代码: // 初始化一个UIimageView UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 300, 300)]; imageView.image = [UIImage imageNamed:@"12.jpg"]; // UIImageView的用户交互是默认关闭的,

iOS 事件处理之UIResponder简介

在用户使用app过程中,会产生各种各样的事件 iOS中的事件可以分为3大类型:触摸事件.加速计事件.远程控制事件 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 // 当手指开始触摸view // NSArray,字典,NSSet(无序) - (void)touchesBeg