前言:我們知道悬襟,一個應(yīng)用程序可以接收許多不同類型的事件剃斧,包括觸摸事件鳍刷、運動事件、遠程控制事件和按壓事件阶女。觸摸事件是最常見的,并且被傳遞到最初發(fā)生觸摸的視圖哩治。運動事件是UIKIT觸發(fā)的秃踩,并且與核心運動框架報告的運動事件分離。遙控事件允許應(yīng)答器對象從外部附件或耳機接收命令业筏,以便它可以管理管理音頻和視頻憔杨,例如播放視頻或跳過到下一個音頻軌道。按壓事件表示與游戲控制器蒜胖、Apple TV遠程或具有物理按鈕的其他設(shè)備的交互消别。可以使用類型和子類型屬性來確定事件的類型台谢。ios中用UIEvent類來表示事件寻狂。(引用UIEvent官方文檔)
獲取觸摸事件:
//返回與事件關(guān)聯(lián)的所有觸摸
@property(nonatomic, readonly, nullable) NSSet *allTouches;
//從給定視圖的事件返回觸摸對象
- (nullable NSSet *)touchesForView:(UIView *)view;
//從指定窗口的事件返回觸摸對象
- (nullable NSSet *)touchesForWindow:(UIWindow *)window;
//返回與指定的主觸控關(guān)聯(lián)的所有觸摸
- (nullable NSArray *)coalescedTouchesForTouch:(UITouch *)touch NS_AVAILABLE_IOS(9_0);
//返回指定觸摸的預(yù)計發(fā)生的觸摸數(shù)組
- (nullable NSArray *)predictedTouchesForTouch:(UITouch *)touch NS_AVAILABLE_IOS(9_0);
時間屬性:
//事件發(fā)生的時間
@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, ?//結(jié)束
UIEventSubtypeRemoteControlTogglePlayPause? ? ? = 103, ? ?//播放和暫停切換
UIEventSubtypeRemoteControlNextTrack? ? ? ? ? ? = 104,? ?//下一首
UIEventSubtypeRemoteControlPreviousTrack? ? ? ? = 105,? ??//上一首
UIEventSubtypeRemoteControlBeginSeekingBackward = 106, ? ?//開始后退
UIEventSubtypeRemoteControlEndSeekingBackward ? = 107, ? ?//結(jié)束后退
UIEventSubtypeRemoteControlBeginSeekingForward? = 108, ? ?//開始快進
UIEventSubtypeRemoteControlEndSeekingForward? ? = 109, ? //結(jié)束快進
};