9 6 觸控和手勢 手勢識別器的使用

2021-06-22 20:03:48 字數 2133 閱讀 9701

ios開發之手勢——uigesturerecognizer 共存

2、手勢識別器

·uigesturerecognizer

uigesturerecognizer類,用於檢測、識別使用者使用裝置時所用的手勢。它是乙個抽象類,定義了所有手勢的基本行為。以下是uigesturerecognizer子類,用 於處理具體的使用者手勢行為;

在 iphone 或 ipad 的開發中,除了用 touchesbegan / touchesmoved / touchesended 這組方法來控制使用者的手指觸控外,也可以用 uigesturerecognizer 的衍生類別來進行判斷。用 uigesturerecognizer 的好處在於有現成的手勢,開發者不用自己計算手指移動軌跡。uigesturerecognizer的衍生類別有以下幾種:

·uitapgesturerecognizer(輕擊) 

·uipinchgesturerecognizer(捏合) 

·uipangesturerecognizer(平移----慢速移動) 

·uiswipegesturerecognizer(輕掃---快速移動) 

·uirotationgesturerecognizer(旋轉) 

·uilongpressgesturerecognizer(長按)

從命名上不難了解這些類別所對應代表的手勢,分別是 tap(點一下)、pinch(二指往內或往外撥動)、rotation(旋轉)、swipe(滑動,快速移動)、pan (拖移,慢速移動)以及 longpress(長按)。這些手勢別在使用上也很簡單,只要在使用前定義並新增到對應的檢視上即可。

通過用 touchesbegan / touchesmoved / touchesended 實現手勢,要監聽檢視view的手勢,必須為這個view建立乙個子類,然後才可以監聽手勢;

手勢有很多種狀態,定義在uigesturerecognizer中的uigesturerecognizerstate;

//

// rootviewcontroller.m

// my_touchgesturedemo

//// created by fenghuo on 14-7-19.

//#import "rootviewcontroller.h"

@inte***ce rootviewcontroller ()

@end

@implementation rootviewcontroller

- (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil

return self;

}- (void)viewdidload

- (void)didreceivememorywarning

//----------手勢繫結的觸發方法-------------------

- (void)tap:(uitapgesturerecognizer *)tapgesture

- (void)doubletap:(uitapgesturerecognizer *)tapgetrue

- (void)swipeaction:(uiswipegesturerecognizer *)swipegesture

- (void)panaction:(uipangesturerecognizer *)panaction

- (void)longpressaction:(uilongpressgesturerecognizer *)longpress

// 會列印兩次;超過兩秒手指按下會列印一次,手指放開也會列印一次;

// 手勢有很多種狀態,定義在uigesturerecognizer中的uigesturerecognizerstate,

// 可以通過判斷手勢狀態,避免兩次輸出;

nslog(@"長按");

}- (void)rotationaction:(uirotationgesturerecognizer *)rotation

- (void)pinchaction:(uipinchgesturerecognizer *)pinch

else

nslog(@"%f", pinch.scale);

}@end

觸控和手勢

一,uiview繼承自uiresponser uitoch toch uitoches anyobject 當前觸控點 cgpoint point toch locationinview self 上乙個位置 previouslocationinview uibezierpath 貝塞爾曲線 cgr...

手勢識別ViewFlipper觸控動畫

html view plain copy xmlversion 1.0 encoding utf 8 linearlayout xmlns android android layout width fill parent android layout height fill parent andro...

觸控手勢識別2

1.點按手勢 uitapgesturerecognizer tap uitapgesturerecognizer alloc initwithtarget self action selector tap 點按次數,例如雙擊2 注意 在ios中最好少用雙擊,如果一定要用,就一定要有乙個圖形化的介面告...