iOS設(shè)備的手勢操作船侧,在app中是個必須且實用的功能,為app加分不少厅各。
向左向右輕劃
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeLeft)];
swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeLeft];
[swipeLeft release];
UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleSwipeRight)];
swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeRight];
[swipeRight release];
單指單擊
UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleSingleFingerEvent:)];
singleFingerOne.numberOfTouchesRequired = 1; //手指數(shù)
singleFingerOne.numberOfTapsRequired = 1; //tap次數(shù)
singleFingerOne.delegate = self;
[self.view addGestureRecognizer:singleFingerOne];
單指雙擊
UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleFingerEvent:)];
singleFingerTwo.numberOfTouchesRequired = 1;
singleFingerTwo.numberOfTapsRequired = 2;
singleFingerTwo.delegate = self;
[self.view addGestureRecognizer:singleFingerTwo];
雙指單擊和雙擊
UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleDoubleFingerEvent:)];
doubleFingerOne.numberOfTouchesRequired = 2;
doubleFingerOne.numberOfTapsRequired = 1;
doubleFingerOne.delegate = self;
UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleFingerEvent:)];
doubleFingerTwo.numberOfTouchesRequired = 2;
doubleFingerTwo.numberOfTapsRequired = 2;
doubleFingerTwo.delegate = self;
[self.view addGestureRecognizer:doubleFingerOne];
[self.view addGestureRecognizer:doubleFingerTwo];
//如果不加下面的話镜撩,當(dāng)單指雙擊時队塘,會先調(diào)用單指單擊中的處理,再調(diào)用單指雙擊中的處理
[singleFingerOne requireGestureRecognizerToFail:singleFingerTwo];
//同理雙指亦是如此
[doubleFingerOne requireGestureRecognizerToFail:doubleFingerTwo];
事件處理方法:
- (void)handleSingleFingerEvent:(UITapGestureRecognizer *)sender
{
if (sender.numberOfTapsRequired == 1) {
//單指單擊
NSLog(@"單指單擊");
}else if(sender.numberOfTapsRequired == 2){
//單指雙擊
NSLog(@"單指雙擊");
}
}
//處理雙指事件
- (void)handleDoubleFingerEvent:(UITapGestureRecognizer *)sender
{
if (sender.numberOfTapsRequired == 1) {
//雙指單擊
NSLog(@"雙指單擊");
}else if(sender.numberOfTapsRequired == 2){
//雙指雙擊
NSLog(@"雙指雙擊");
}
}