iOS.UI進階.UITouch觸摸與UIGesture手勢.03.手勢辨識器(UIGestureRecognizer),uigesture.03
一、什麼是手勢辨識器:
手勢辨識器UIGestureRecognizer是用來識別使用者使用裝置時候,所用的是手勢,是滑動呢,還是輕擊還是其他。
UIGestureRecognizer類,用於檢測、識別使用者使用裝置時所用的手勢。它是一個抽象類別,定義了所有手勢的基本行為。以下是UIGestureRecognizer子類,用於處
理具體的使用者手勢行為:
- UITapGestureRecognizer(輕擊)
- UIPinchGestureRecognizer(捏合)
- UIPanGestureRecognizer(平移)
- UISwipeGestureRecognizer(輕掃)
- UIRotationGestureRecognizer(旋轉)
- UILongPressGestureRecognizer(長按)
它們都繼承於UIGestureRecognizer,是它的子類。
二、執行個體
以UITapGestureRecognizer(輕擊)為例:
先看它的兩個屬性:
@property (nonatomic) NSUInteger numberOfTapsRequired; // Default is 1. The number of taps required to match
@property (nonatomic) NSUInteger numberOfTouchesRequired; // Default is 1. The number of fingers required to match
其中numberOfTapsRequired屬性可以輕擊的次數,預設是一次。numberOfTouchesRequired屬性可以設定幾隻手指輕擊,預設是一隻手指。兩個屬性 可以一起用,達到不同的效果。
程式碼範例:
- (void)viewDidLoad {
[super viewDidLoad];
//添加一個輕擊手勢gesture1,並實現輕擊時的方法gestureAction
UITapGestureRecognizer * gesture1=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(sigleGestureAction)];
[self.view addGestureRecognizer:gesture];//別忘了添加手勢,這裡把手勢添加在了self.view上。
//添加雙擊手勢,實現雙擊方法。
UITapGestureRecognizer * gesture2=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubelGestureAction)];
gesture2.numberOfTapsRequired=2;//如果是雙擊,將這個屬性值設定為哦2。
[self.view addGestureRecognizer:gesture2];
gesture1 requireGestureRecognizerToFail:gesture2];//注意這句代碼是將兩重手勢區分開。
}
-(void)sigleGestureAction{
NSLog(@"單擊");
}
-(void)doubelGestureAction{
NSLog(@"雙擊");
}
添加其他的手勢,方法基本上都是一樣的,當你添加的時,建立完對象不妨看看文檔,設定下屬性,寫下添加的方法就OK了。
初學iOS,如有錯誤,請不吝賜教。