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

猜你喜欢

转载自www.cnblogs.com/xianfeng-zhang/p/9469629.html
今日推荐