iOS 開發UI中輕拍,長按,旋轉手勢辨識器方法

來源:互聯網
上載者:User

標籤:

一、監聽觸摸事件的做法 如果想監聽一個view上面的觸摸事件,之前的做法通常是:先自訂一個view,然後再實現view的touches方法,在方法內部實現具體處理代碼通過touches方法監聽view觸摸事件,有很明顯的幾個缺點(1)必須得自訂view(2)由於是在view內部的touches方法中監聽觸摸事件,因此預設情況下,無法讓其他外界對象監聽view的觸摸事件(需要通過代理)(3)不容易區分使用者的具體手勢行為iOS 3.2之後,蘋果推出了手勢識別功能(Gesture Recognizer),在觸摸事件處理方面,大大簡化了開發人員的開發難度 二、手勢辨識器為了完成手勢識別,必須藉助於手勢辨識器----UIGestureRecognizer利用UIGestureRecognizer,能輕鬆識別使用者在某個view上面做的一些常見手勢UIGestureRecognizer是一個抽象類別,定義了所有手勢的基本行為,使用它的子類才能處理具體的手勢 UITapGestureRecognizer(輕拍)UIPinchGestureRecognizer(捏合,用於縮放)UIPanGestureRecognizer(拖拽)UISwipeGestureRecognizer(輕掃)UIRotationGestureRecognizer(旋轉)UILongPressGestureRecognizer(長按)UIScreenEdgePanGestureRecognizer(螢幕邊緣輕掃)

代碼說明:手勢的常用狀態如下

開始:UIGestureRecognizerStateBegan

改變:UIGestureRecognizerStateChanged

結束:UIGestureRecognizerStateEnded

取消:UIGestureRecognizerStateCancelled

失敗:UIGestureRecognizerStateFailed

 

  (一)、輕拍手勢 每一個手勢辨識器的用法都差不多,比如UITapGestureRecognizer的使用步驟如下:(1)建立手勢辨識器對象UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];(2)設定手勢辨識器對象的具體屬性// 連續輕拍2次tap.numberOfTapsRequired = 2;// 需要2根手指一起觸摸tap.numberOfTouchesRequired = 2;(3)添加手勢辨識器到對應的view上[self.iconView addGestureRecognizer:tap];(4)監聽手勢的觸發[tap addTarget:self action:@selector(tapIconView:)];屬性介紹:numberOfTouchesRequired   //需要多少根手指一起輕拍(預設為1根)numberOfTapsRequired    //需要輕拍多少下(預設為1)  實現方法    (二)、長按手勢   實現方法     (三)、旋轉手勢

  UIRotationGestureRecognizer手勢辨識器,就像名稱一樣,這個類能用來監聽和捕獲旋轉的手勢,能協助你建立出更直觀的圖形化使用者介面,比如一種情境,當你的應用中有一個展示圖片的視圖,使用者需要通過旋轉圖片來調整圖片的方向。 

        UIRotationGestureRecognizer這個類有一個rotation的屬性,這個屬性可以用來設定旋轉的方向和旋轉的弧度。旋轉是從手指的初始位置(UIGestureRecognizerStateBegan)到最終位置(UIGestureRecognizerStateBegan)決定的。 

為了對繼承自UIView的UI元素進行旋轉,你可以將旋轉手勢辨識器的rotation屬性傳遞給CGAffineTransformMakeRotation方法,以製作一個仿射轉場

 

 

 

實現方法

 

 

 

iOS 開發UI中輕拍,長按,旋轉手勢辨識器方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.