该UIResponder类定义了响应和处理事件的对象接口。它是UIView和UIApplication的超类(UIWindow)。这些类的实例有时被称为响应者对象,简单地说就是响应者。

  通常有2种事件类型,触摸事件和移动事件。

  处理触摸事件的主要方法

  1.touchesBegan:withEvent:

  2.touchesMoved:withEvent:

  3.touchesEnded:withEvent:

  4.touchesCancelled:withEvent:

这些方法的参数与触摸它们的事件相关联,开始触摸以及触摸位置的改变都会发生触摸事件。因此iOS允许在多点触摸中响应者分别追踪和处理触摸。只要手指触摸屏幕,滑动,从屏幕离开,都会产生一个UIEvent对象,事件包括UITouch对象

  处理移动事件的主要方法

  1.motionBegan:withEvent:

  2.motionEnded:withEvent:

  3.motionCancelled:withEvent:

另外,canPerformAction:withSender: 方法允许响应程序来验证用户界面中的命令,而 undoManager 属性返回最近的在响应链中NSUndoManager 对象。

UIEventType结构体定义了事件类型。

typedef NS_ENUM(NSInteger, UIEventType) {

    UIEventTypeTouches,

    UIEventTypeMotion,

    UIEventTypeRemoteControl,

#ifndef SDK_HIDE_TIDE

    UIEventTypePresses NS_ENUM_AVAILABLE_IOS(9_0),

#endif

};

  

  管理响应者链

  - (nullable UIResponder*)nextResponder
  返回当前接收者的下一个响应者,如果没有返回nil。让响应链中下一个对象处理事件。
  UIResponder类默认会返回nil,并不会自动存储或设置下一个响应者。因此它的子类必须重写此方法以设置下一个响应者。下图是响应者链传递顺序
  
   - (BOOL)isFirstResponder
  判断接收者是否为第一响应者。返回YES则该消息接收者为第一响应者,反之不是第一响应者。
  
  - (BOOL)becomeFirstResponder
  通知接收者在其窗口中它即将成为第一响应者。默认返回YES。
 
  - (BOOL)resignFirstResponder
  解除当前接收者为第一响应者。
 
  - (BOOL)canResignFirstResponder
  判断接收者是否可以解除第一响应者。返回yes为可以,反之不可以解除。
 
  管理输入视图
  @property (nullable, nonatomic, readonly, strong) __kindof UIView *inputView
  当接收者成为第一响应者时显示的自定义视图。此属性通常用于提供一个视图以更换 UITextField 和 UITextView 对象提供的系统键盘。它为只读属性。当接收者成为第一响应者时该视图自动呈现,同样解除第一响应者时该视图应该自动消失。
 
  @property (nullable, nonatomic, readonly, strong) UIInputViewController *inputViewController
  同上。
 
  - (void)reloadInputViews
  当接收者为第一响应者时更新输入视图或子视图。
 
   响应触摸事件

  - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event

  当开始触摸屏幕是发生。touches为事件触摸的UITouch实例的集合。event是引起事件的对象。

  

  - (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event

  当一根或多根手指在屏幕中移动时发生

  - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event

  当一根或多根手指在屏幕中离开时发生

  - (void)touchesCancelled:(nullable NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event

  触摸取消时发生(内存吃紧)

iOS中文API之UIResponder介绍的更多相关文章

  1. iOS中文API之NSLayoutconstraint

    AutoLayout为开发者提供了一种不同于传统对于UI元素位置指定的布局方法.以前,不论是在IB里拖放,还是在代码中写,每个UIView都会有自己的frame属性,来定义其在当前视图中的位置和尺寸. ...

  2. iOS中文API之UITouch详解

    UITouch 对象用于位置. 大小. 运动和一根手指在屏幕上为某一特定事件的力度.触摸的力度是从开始在 iOS 9 支持 3D 的触摸的设备上可用.你可以通过UIEvent对象传递给响应者对象访问. ...

  3. iOS - UIEvent事件及UIResponder响应者

    在iOS中不是所有的对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件,称之为响应者对象: UIApplication.UIViewController.UIView都继承自U ...

  4. iOS控件之UIResponder类

    iOS控件之UIResponder类 在iOS中UIResponder类是专门用来响应用户的操作处理各种事件的,我们知道UIApplication.UIView.UIViewController这几个 ...

  5. 如何在 Swift 语言下使用 iOS Charts API 制作漂亮图表?

    [编者按]本文作者 Joyce Echessa 是渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.文中作者通过示例介绍用 ios-charts 库创建简易美观的 ...

  6. [置顶] COcos2d-X 中文API

    本文来自http://blog.csdn.net/runaying ,引用必须注明出处! COcos2d-X 中文API 温馨提醒:使用二维码扫描软件,就可以在手机上访问我的博客啦!另外大家可以访问另 ...

  7. Android 中文API (65) —— BluetoothClass[蓝牙]

    前言 本章内容是android.bluetooth.BluetoothClass,为Android蓝牙部分的章节翻译.用于描述远端设备的类型,特点等信息,通过getBluetoothClass()方法 ...

  8. 2018-08-22 为中文API的简繁转换库添加迟到的持续集成

    前两天在V2EX偶遇反馈帖第一次见以汉字命名的 Java 类 - V2EX, 于是复习了一下半年多没碰的项目program-in-chinese/zhconverter. 前文介绍了发布过程: 在Ma ...

  9. Knockout开发中文API系列4–监控属性数组

    PS:这个翻译系列好久都没有更新了,实在是不应该,一方面是由于时间不多,另一方面也由于自身惰性太大,从今天起接着更新,会在最近的一月内把这个系列中文API文档翻译完整. 如果你想侦测并响应一个对象的变 ...

随机推荐

  1. Golang Vendor 包机制 及 注意事项

    现在的 Go 版本是 1.8,早在 1.5 时期,就有了 Vendor 包机制,详情可查看博文:“理解 Go 1.5 vendor”. 遇到的问题 个人在使用 Glide 管理 Vendor 包时(附 ...

  2. windows phone 基础

    一.安装 建议安装Windows 7环境,XP中不能运行模拟器,Vista系统支持,但不解释.系统安装完后,直接去微软网站在线安装即可,非常方便,美中不足的是如果你的网速不快,那可能要折磨你半天,快得 ...

  3. 通过连接池和字段索引,提升单点登录cas的性能

    cas是多个系统的中心认证,认证的过程就是用户的登录信息和数据库中的信息匹对的过程,假设某一时刻登录的人数非常多,须要频繁的读取数据库,数据库连接的管理就是问题. 前天測试评教时无意之中把单点登录的问 ...

  4. Java获取URL链接的文件类型

    问题发生: Java从网络批量读取图片并保存至本网站服务器后再插入文章中 今天转入一篇文章 http://news.qq.com/a/20170605/045860.htm 发现图片未能成功上传 查看 ...

  5. Swift - 通过叠加UILabel来实现混合的进度条

    Swift - 通过叠加UILabel来实现混合的进度条 效果 源码 https://github.com/YouXianMing/Swift-Animations // // MixedColorP ...

  6. ubuntu php 安装

    ---apache2sudo apt-get install apache2 ---phpsudo apt-get install libapache2-mod-php5 php5 php5-gd p ...

  7. 让手机连接到指定的WIFI网络,适用于之前已经连过的网络

    这个例子是从网上找的,我给重新优化了下.这里有个问题是只能连接到之前已经连接过的wifi,目前还没找到连接到陌生wifi(有/无密码)的方法.总之慢慢来吧~ 说下思路: 1.通过wifiManager ...

  8. ImageView和onTouchListener实现,点击查看图片细节

    这是来自疯狂android讲义上的例子,其实没啥意思.就是用监听器获取到手指的坐标,然后根据这个坐标开始绘制一个图片.(这里的绘制方式有些问题,所以凑合看看吧.) 首先,还是布局文件(两个ImageV ...

  9. 第三方IDC性能测评主要指标

    弹性计算性能弹性计费模式就是 "即用即付 ",最小单位可以按小时来计算.随着云计算负载的增长,企业购买服务器带宽时的资源.   1.弹性计算性能   弹性计费模式就是"即 ...

  10. [转]缓慢但胜在稳健,HBase大势已成

    CSDN Hbase : http://www.csdn.net/tag/hbase 在NoSQL数据库领域,统治产品无疑当属MongDB和DataStax Enterprise(一个领先的Apach ...