ios事件之UIEvent类详解(一)
前言:我们知道,一个应用程序可以接收许多不同类型的事件,包括触摸事件、运动事件、远程控制事件和按压事件。触摸事件是最常见的,并且被传递到最初发生触摸的视图。运动事件是UIKIT触发的,并且与核心运动框架报告的运动事件分离。遥控事件允许应答器对象从外部附件或耳机接收命令,以便它可以管理管理音频和视频,例如播放视频或跳过到下一个音频轨道。按压事件表示与游戏控制器、Apple TV远程或具有物理按钮的其他设备的交互。可以使用类型和子类型属性来确定事件的类型。ios中用UIEvent类来表示事件。(引用UIEvent官方文档)
获取触摸事件:
//返回与事件关联的所有触摸
@property(nonatomic, readonly, nullable) NSSet *allTouches;
//从给定视图的事件返回触摸对象
- (nullable NSSet *)touchesForView:(UIView *)view;
//从指定窗口的事件返回触摸对象
- (nullable NSSet *)touchesForWindow:(UIWindow *)window;
//返回与指定的主触控关联的所有触摸
- (nullable NSArray *)coalescedTouchesForTouch:(UITouch *)touch NS_AVAILABLE_IOS(9_0);
//返回指定触摸的预计发生的触摸数组
- (nullable NSArray *)predictedTouchesForTouch:(UITouch *)touch NS_AVAILABLE_IOS(9_0);
时间属性:
//事件发生的时间
@property(nonatomic,readonly) NSTimeInterval timestamp;
获取事件类型:
//事件类型
@property(nonatomic,readonly) UIEventType type NS_AVAILABLE_IOS(3_0);
//事件亚类型
@property(nonatomic,readonly) UIEventSubtype subtype NS_AVAILABLE_IOS(3_0);
获取手势识别器的触摸:
//返回正在传递到指定手势识别器的触摸对象
- (nullable NSSet *)touchesForGestureRecognizer:(UIGestureRecognizer *)gesture NS_AVAILABLE_IOS(3_2);
ios事件的四种类型(指定事件的一般类型):
typedefNS_ENUM(NSInteger, UIEventType) {
UIEventTypeTouches, //触摸事件
UIEventTypeMotion, //运动事件
UIEventTypeRemoteControl, //远程控制事件
UIEventTypePresses NS_ENUM_AVAILABLE_IOS(9_0), //按压事件
};
ios指定事件的子类型及其一般类型:
指定事件的子类型及其一般类型
typedef NS_ENUM(NSInteger, UIEventSubtype) {
UIEventSubtypeNone = 0, //无类型
UIEventSubtypeMotionShake = 1, //摇晃
UIEventSubtypeRemoteControlPlay = 100, //播放
UIEventSubtypeRemoteControlPause = 101, //暂停
UIEventSubtypeRemoteControlStop = 102, //结束
UIEventSubtypeRemoteControlTogglePlayPause = 103, //播放和暂停切换
UIEventSubtypeRemoteControlNextTrack = 104, //下一首
UIEventSubtypeRemoteControlPreviousTrack = 105, //上一首
UIEventSubtypeRemoteControlBeginSeekingBackward = 106, //开始后退
UIEventSubtypeRemoteControlEndSeekingBackward = 107, //结束后退
UIEventSubtypeRemoteControlBeginSeekingForward = 108, //开始快进
UIEventSubtypeRemoteControlEndSeekingForward = 109, //结束快进
};