一、什么是手勢識別器:
手勢識別器UIGestureRecognizer是用來識別用戶使用設備時候,所用的是手勢,是滑動呢,還是輕擊還是其他。
UIGestureRecognizer類,用于檢測、識別用戶使用設備時所用的手勢。它是一個抽象類,定義了所有手勢的基本行為。以下是UIGestureRecognizer子類,用于處
理具體的用戶手勢行為:
它們都繼承于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,如有錯誤,請不吝賜教。
新聞熱點
疑難解答