iOS开发UIEvent事件简介

1、UIEvent简介

  UIEvent是代表iOS系统中的一个事件,一个事件包含一个或多个的UITouch

  UIEvent分为四类: UIEventType

typedef NS_ENUM(NSInteger, UIEventType) {
    UIEventTypeTouches,//触摸事件类型 iOS3.0之后可以用
    UIEventTypeMotion,//摇晃事件类型 iOS3.0之后可以用
    UIEventTypeRemoteControl,//遥控事件类型 iOS4.0之后可以用
    UIEventTypePresses NS_ENUM_AVAILABLE_IOS(9_0),//物理按钮事件类型 iOS9.0之后可以用
};

  子事件类型:UIEventSubtype

typedef NS_ENUM(NSInteger, UIEventSubtype) {
    //事件没有子类型 iOS3.0之后可以用
    UIEventSubtypeNone                              = 0,

    //事件子类型晃动的设备 iOS3.0之后可以用
    UIEventSubtypeMotionShake                       = 1,

    //遥控的事件子类型 iOS4.0之后可以用
    UIEventSubtypeRemoteControlPlay                 = 100,//播放
    UIEventSubtypeRemoteControlPause                = 101,//暂停
    UIEventSubtypeRemoteControlStop                 = 102,//停止
    UIEventSubtypeRemoteControlTogglePlayPause      = 103,//播放和暂停之间切换【操作:播放或暂停状态下,按耳机线控中间按钮一下】
    UIEventSubtypeRemoteControlNextTrack            = 104,//下一曲【操作:按耳机线控中间按钮两下】
    UIEventSubtypeRemoteControlPreviousTrack        = 105,//上一曲【操作:按耳机线控中间按钮三下】
    UIEventSubtypeRemoteControlBeginSeekingBackward = 106,//快退开始【操作:按耳机线控中间按钮三下不要松开】
    UIEventSubtypeRemoteControlEndSeekingBackward   = 107,//快退结束【操作:按耳机线控中间按钮三下到了快退的位置松开】
    UIEventSubtypeRemoteControlBeginSeekingForward  = 108,//快进开始【操作:按耳机线控中间按钮两下不要松开】
    UIEventSubtypeRemoteControlEndSeekingForward    = 109,//快进结束【操作:按耳机线控中间按钮两下到了快进的位置松开】
};

2、相关API

NS_CLASS_AVAILABLE_IOS(2_0) @interface UIEvent : NSObject

@property(nonatomic,readonly) UIEventType     type NS_AVAILABLE_IOS(3_0);//事件类型
@property(nonatomic,readonly) UIEventSubtype  subtype NS_AVAILABLE_IOS(3_0);//子事件类型

@property(nonatomic,readonly) NSTimeInterval  timestamp;//事件发生时间

//返回与接收器相关联的所有触摸对象。
#if UIKIT_DEFINE_AS_PROPERTIES
@property(nonatomic, readonly, nullable) NSSet <UITouch *> *allTouches;
#else
- (nullable NSSet <UITouch *> *)allTouches;
#endif
- (nullable NSSet <UITouch *> *)touchesForWindow:(UIWindow *)window;//返回属于一个给定视图的触摸对象,用于表示由接收器所表示的事件。
- (nullable NSSet <UITouch *> *)touchesForView:(UIView *)view;//返回属于一个给定窗口的接收器的事件响应的触摸对象。
- (nullable NSSet <UITouch *> *)touchesForGestureRecognizer:(UIGestureRecognizer *)gesture NS_AVAILABLE_IOS(3_2);//返回触摸对象被传递到特殊手势识别

//会将丢失的触摸放到一个新的 UIEvent 数组中,你可以用 coalescedTouchesForTouch(_:) 方法来访问
- (nullable NSArray <UITouch *> *)coalescedTouchesForTouch:(UITouch *)touch NS_AVAILABLE_IOS(9_0);

//辅助UITouch的触摸,预测发生了一系列主要的触摸事件。这些预测可能不完全匹配的触摸的真正的行为,因为它的移动,所以他们应该被解释为一个估计。
- (nullable NSArray <UITouch *> *)predictedTouchesForTouch:(UITouch *)touch NS_AVAILABLE_IOS(9_0);

@end

原文地址:https://www.cnblogs.com/xianfeng-zhang/p/9469629.html

时间: 2024-10-11 14:37:11

iOS开发UIEvent事件简介的相关文章

ios开发,多线程简介

什么是进程? 进程就是指,在系统中正在运行的一个应用程序,比如同时打开QQ,Xcode,系统就会分别启动两个进程. 什么是线程? 一个进程要想执行任务,必须得有线程,线程是进程的基本执行单元,比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 线程的串行:一个线程中任务对的执行就是串行 如果要在一个线程中执行多个任务,那么只能一个一个的按照顺序执行这些任务,也就是说,在同一个时间内,一个线程只能执行一个任务 什么是多线程? 一个进程中可以开启多条线程,每条线程可以并发,执行不同的任务 比

iOS开发-Block简介

Block简称闭包,实际上就是一个程序块,Block的名称类似于函数的入口地址,有自己的作用域范围,在作用域结束接受后被销毁(通常函数结束后),通常被分配在栈中(以便访问局部变量和提高性能),Block本身是一个objective-c 中的对象,适用于内存管理方法,我们可以使用Block来完成一些同步执行的程序片段,封装一些小型的工作和完成一项工作时的回调(callback).Blocks 作为传统回调函数的一个实用的替代办法,有以下两个原因: 1.它们可以让你在调用的地方编写代码实现后面将要执

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

一. IOS 项目简介 1. IOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类和资源; (1) HelloWorld 目录 HelloWorld 目录介绍 : -- 命名规则 : 该目录名称与 IOS 项目名称相同, 是主目录; -- 存放内容 : IOS 项目的 源码文件, 界面设计文件, 资源文件都存放在该目录下; -- 源文件 : Objective C 的 .m 和

IOS开发——UI进阶篇(十二)事件处理,触摸事件,UITouch,UIEvent,响应者链条,手势识别

触摸事件 在用户使用app过程中,会产生各种各样的事件 一.iOS中的事件可以分为3大类型 触摸事件加速计事件远程控制事件 响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 二.UIResponder UIResponder内部提供了以下方法来处理事件触摸事件- (v

IOS开发—事件处理,触摸事件,UITouch,UIEvent,响应者链条,手势识别

触摸事件 在用户使用app过程中,会产生各种各样的事件 一.iOS中的事件可以分为3大类型 触摸事件加速计事件远程控制事件 响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 二.UIResponder UIResponder内部提供了以下方法来处理事件触摸事件- (v

iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

-- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件.远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 iOS事件 在iOS中事件分为三类: 触摸事件:通过触摸.手势进行触发(例如手指点击.缩放) 运动事件:通过加速器进行触发(例如手机晃动) 远程控制事件:通过其他远程设备触发(例如耳机控制

转发:iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

-- iOS事件全面解析 转载来自崔江涛(KenshinCui) 链接:http://www.cnblogs.com/kenshincui/p/3950646.html 概览 iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计.今天我们就针对iOS的触摸事件(手势操作).运动事件.远程控制事件等展开学习: iOS事件简介 触摸事件 手势识别 运动事件 远程控制事件 iOS事件 在iOS中事件分为三类: 触摸事

iOS开发笔记--iOS中的触摸事件和手势处理

iOS中的事件可以分为三大类:原文:http://my.oschina.net/aofe/blog/268749 1> 触摸事件 2> 加速计事件 3> 远程控制事件 响应者对象 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为"响应者对象". UIApplication,UIViewController,UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件. UIRespon

iOS开发UI篇—CAlayer简介

iOS开发UI篇—CALayer简介 一.简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView. 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 @property(nonatomic,readonly,retain) CALayer *layer; 当