1.简介

  在使用设备的时候我们大多时候是但手指触摸控件了进行的,比如点击密码按钮解锁,上下浏览网页等动作。你肯定也摇动过iphone抢红包和***等等,我们的系统可以处理这些事件则都需要去使用UIResponder这个基类。打开https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIResponder_Class/index.html#//apple_ref/occ/instm/UIResponder你讲看到详细的说明。

2.UIResponder事件介绍

在OC中UIResponder就像java中的抽象类一样,你不能通过它去直接创建对象,任务需要处理事件的类都应该继承它或者他的子类。那么神奇的UIResponder到底能够处理那些事件呢:

触摸事件

摇摆事件

重按事件

可以看到UIResponder为偶们提供了丰富的事件类型,为ios的操作提供良好的体验。正如之前所说UIResponder不能够单独实例化,但是只要我们集成UIResponder或者集成UIResponder的子类,并覆盖相应的事件处理方法那么新建的类将获得事件处理的能力。当然IOS库也给我们提供了现成的这样的已经拥有事件处理能力的类供我们使用。

3.继承关系

将UIResponder作为父类派生出如下子类

-UIResponder

  -UIApplication

  -UIView

    -UIControl

  -UIViewController

1.我们可以看到所有的UIView都继承自UIResponder,这也很容易理解,应为一般的UIView都将在界面上呈现,对于触摸事件都会非常敏感。

2.而UIControl类则是UIButton等控件的父类,系统帮助我们将此类控件的共有操作都封装在UIControl中。

3.对于UIApplication和UIViewController不像UIView那样可被触摸,但是不要忘记了UIResponder除了可以处理触摸事件外还可以进行其他事件的处理,而这些事件会被响应者链机制传递到

UIApplication和UIViewController。

4.后续

对于IOS处理事件的机制后续将着重讨论。

见:触摸事件

UIResponder简介的更多相关文章

  1. iOS 事件处理之UIResponder简介

    在用户使用app过程中,会产生各种各样的事件 iOS中的事件可以分为3大类型:触摸事件.加速计事件.远程控制事件 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处 ...

  2. iOS开发UIResponder简介API

    #import <Foundation/Foundation.h> #import <UIKit/UIKitDefines.h> #import <UIKit/UIEve ...

  3. UIKIT的简介

    // // UIKIT各框架的简介 // IOS笔记 // // Created by 刘威成 on 13/12/14. // Copyright © 2015年 刘威成. All rights re ...

  4. 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    一. iOS 项目简介 1. iOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类 ...

  5. iOS开发UIResponder之NSUndoManager

    1.简介 UIResponder有个属性:NSUndoManager @property(nullable, nonatomic,readonly) NSUndoManager *undoManage ...

  6. iOS开发UIEvent事件简介

    1.UIEvent简介 UIEvent是代表iOS系统中的一个事件,一个事件包含一个或多个的UITouch: UIEvent分为四类: UIEventType typedef NS_ENUM(NSIn ...

  7. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  8. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  9. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

随机推荐

  1. html dom与javascript的关系 -我们用JavaScript对网页(HTML)进行的所有操作都是通过DOM进行的

    一,什么是DOM (参考源http://www.cnblogs.com/chaogex/p/3959723.html) DOM是什么 DOM全称为The Document Object Model,应 ...

  2. BZOJ1856:[SCOI2010]字符串——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=1856 lxhgww最近接到了一个生成字符串的任务,任务需要他把n个1和m个0组成字符串,但是任务还 ...

  3. 【图论】tarjan的离线LCA算法

    百度百科 Definition&Solution 对于求树上\(u\)和\(v\)两点的LCA,使用在线倍增可以做到\(O(nlogn)\)的复杂度.在NOIP这种毒瘤卡常比赛中,为了代码的效 ...

  4. ACE线程管理机制-线程的创建与管理

    转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581369.html 有过在不同的操作系统下用c++进行过多线程编程的朋友对那些线程处理 ...

  5. librdkafka 源码分析

    http://note.youdao.com/noteshare?id=c7ff510525b4dadaabb6f6a0a72040cc

  6. HDU 3605 最大流+状态压缩

    Escape Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  7. webpack插件url-loader使用规范

    其实说到性能优化,他的范围太广了,今天我们就只聊一聊通过webpack配置减少http请求数量这个点吧. 简单说下工作中遇到的问题吧,我们做的一个项目中首页用了十多张图片,每张图片都是一个静态资源,所 ...

  8. [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper

    洛谷题目链接:[USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper 题目描述 A little known fact about Bessie and friends is ...

  9. 记一次rsync日志报错directory has vanished

    中午两点的时候邮件告知rsync同部svn源库失败,看rsync日志报错显示如上,当时还在上课,没在公司,怀疑是不是有人动了svn的版本库,后来询问同事并通过vpn登录服务器上查看版本库是正常的,也没 ...

  10. POJ3495 Bitwise XOR of Arithmetic Progression

    Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 772   Accepted: 175 Description Write ...