iOS開發中的手勢總結

手勢在iOS中是非常重要的,它極大的提高了移動設備的便攜使用性。

在iOS3.2之後,系統提供了一些常用的手勢,開發者可以可以直接使用它們進行一些手勢操作,系統提供的都都是UIGestureRecognizer的子類。

常用手勢分別爲:

1.UIPanGestureRecognizer  拖動手勢

2.UIPinchGestureRecognizer 捏合手勢

3.UIRotationGestureRecognizer 旋轉手勢

4.UITapGestureRecognizer 點擊手勢

5.UILongPressGestureRecognizer 長按手勢

6.UISwipeGestureRecognizer 輕掃手勢

7.自定義手勢繼承於UIGestureRecognizer

手勢的狀態說明:

typedef NS_ENUM(NSInteger, UIGestureRecognizerState) {
    UIGestureRecognizerStatePossible,   //可能觸發了觸摸事件,但是還沒有識別到是哪種手勢,是默認的手勢狀態
    UIGestureRecognizerStateBegan,      // 手勢已經開始了,並被識別,但是這時可能手勢還沒進行完
    UIGestureRecognizerStateChanged,    // 手勢發生改變
    UIGestureRecognizerStateEnded,      // 手勢完成
    UIGestureRecognizerStateCancelled,  // 手勢被取消
    UIGestureRecognizerStateFailed,     // 沒有識別手勢
    UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded // 手勢識別完成,同時UIGestureRecognizerStateEnded
};

手勢類型:

離散型手勢:手勢一旦識別就無法取消,而且只會調用一次手勢操作事件(初始化手勢時指定的回調方法)。
連續型手勢:會多次調用手勢操作事件,而且在連續手勢識別後可以取消手勢。

注意:以上6種(不包含自定義)手勢識別中,只有一種手勢是離散型手勢,即UITapGestureRecognizer

手勢的使用方法:

1.創建手勢識別器對象實例。創建時,指定一個回調方法,當手勢開始,改變、或結束時,執行回調方法;

2.設置手勢識別器對象實例的相關屬性,例如:長按手勢的長按時間,點擊手勢的手指數等等。

3.添加到需要識別的 View 中。每個手勢只對應一個 View,當屏幕觸摸在 View 的邊界內時,如果手勢和預定的一樣,那就會執行回調方法。

代碼:https://github.com/KityPei/GestureRecognizerDemo.git

發佈了39 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章