iOS手勢操作

//向左向右輕劃

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; //手指數

singleFingerOne.numberOfTapsRequired = 1; //tap次數

//? ? 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];

//如果不加下面的話,當單指雙擊時,會先調用單指單擊中的處理,再調用單指雙擊中的處理

[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(@"雙指雙擊");

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容