監(jiān)聽觸摸事件 - 手勢識別器(UIGestureRecognizer)

  • 為了完成手勢識別,必須借助于手勢識別器----UIGestureRecognizer
  • 利用UIGestureRecognizer,能輕松識別用戶在某個view上面做的一些常見手勢
  • UIGestureRecognizer是一個抽象類,定義了所有手勢的基本行為,使用它的子類才能處理具體的手勢
UITapGestureRecognizer       //敲擊
UIPinchGestureRecognizer     //捏合,用于縮放
UIPanGestureRecognizer       //拖拽
UISwipeGestureRecognizer     //輕掃
UIRotationGestureRecognizer  //旋轉(zhuǎn)
UILongPressGestureRecognizer //長按

  • UITapGestureRecognizer
  • 每一個手勢識別器的用法都差不多,比如UITapGestureRecognizer的使用步驟如下
//創(chuàng)建手勢識別器對象
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc]init];
//設(shè)置手勢識別器對象的具體屬性
tap.numberOfTapsRequired = 2;        //連續(xù)敲擊2次
tap.numberOfTouchesRequired = 2;     //需要2根手指一起敲擊
//添加手勢識別器到對應(yīng)的view上
[self.iconViewaddGestureRecognizer:tap];
//監(jiān)聽手勢的觸發(fā)
[tapaddTarget:selfaction:@selector(tapIconView:)];

  • 手勢識別的狀態(tài)
typedef NS_ENUM(NSInteger, UIGestureRecognizerState) {
    UIGestureRecognizerStatePossible,   //沒有觸摸事件發(fā)生,所有手勢識別的默認(rèn)狀態(tài)
    UIGestureRecognizerStateBegan,      //一個手勢已經(jīng)開始但尚未改變或者完成時
    UIGestureRecognizerStateChanged,    //手勢狀態(tài)改變
    UIGestureRecognizerStateEnded,      //手勢完成
    UIGestureRecognizerStateCancelled,  //手勢取消,恢復(fù)至Possible狀態(tài)
    UIGestureRecognizerStateFailed,     //手勢失敗,恢復(fù)至Possible狀態(tài)
                                        //識別到手勢識別
    UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded     
};

  • 手勢識別狀態(tài)變化示意圖



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容