本文部分轉自俺是一個瓜娃!!!的博客UISwipeGestureRecognizer ---手指動作,轉載過來僅是為了自己查詢方便。
tap是指輕觸手勢。類似鼠標操作的點擊。從iOS 3.2版本開始支持完善的手勢api:
- tap:輕觸
- long press:在一點上長按
- pinch:兩個指頭捏或者放的操作
- pan:手指的拖動
- swipe:手指在屏幕上很快的滑動
- rotation:手指反向操作
- (void)viewDidLoad
{
[superviewDidLoad];
infoView=[[UIViewalloc] initWithFrame:CGRectMake(20, 300, 768-400, 70)];
infoView.backgroundColor=[UIColorblueColor];
infoView.alpha=0.6;
infoView.layer.cornerRadius=6;
infoView.layer.masksToBounds=YES;
[self.view addSubview:infoView];
/******************監視手勢控制*****************/
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
[[selfview] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)];
[[selfview] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionDown)];
[[selfview] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)];
[[selfview] addGestureRecognizer:recognizer];
[recognizer release];
}
/******************手勢控制操作及切換特效*****************/
//滑動事件1
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer{
//如果往左滑
if(recognizer.direction==UISwipeGestureRecognizerDirectionLeft) {
//先加載數據,再加載動畫特效
[self nextQuestion];
self.view.frame = CGRectMake(320, 0, 320, 480);
[UIViewbeginAnimations:@"animationID"context:nil];
[UIViewsetAnimationDuration:0.3f];
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIViewsetAnimationRepeatAutoreverses:NO];
self.view.frame = CGRectMake(0, 0, 320, 480);
[UIViewcommitAnimations];
}
//如果往右滑
if(recognizer.direction==UISwipeGestureRecognizerDirectionRight) {
[self lastQuestion];
self.view.frame = CGRectMake(-320, 0, 320, 480);
[UIViewbeginAnimations:@"animationID"context:nil];
[UIViewsetAnimationDuration:0.3f];
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIViewsetAnimationRepeatAutoreverses:NO];
self.view.frame = CGRectMake(0, 0, 320, 480);
[UIViewcommitAnimations];
}
}
//滑動觸發事件2
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
NSLog(@"Swipe received.");
if (recognizer.direction==UISwipeGestureRecognizerDirectionDown) {
NSLog(@"swipe down");
[UIViewbeginAnimations:@"animationID"context:nil];
[UIViewsetAnimationDuration:0.7f];
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIViewsetAnimationRepeatAutoreverses:NO];
[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlDownforView:self.viewcache:YES];
[infoViewremoveFromSuperview];
[self.view addSubview:infoView];
[UIViewcommitAnimations];
}
if (recognizer.direction==UISwipeGestureRecognizerDirectionUp) {
NSLog(@"swipe up");
[UIViewbeginAnimations:@"animationID"context:nil];
[UIViewsetAnimationDuration:0.7f];
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIViewsetAnimationRepeatAutoreverses:NO];
[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUpforView:self.viewcache:YES];
[infoViewremoveFromSuperview];
[self.view addSubview:infoView];
[UIViewcommitAnimations];
}
}
//點擊出發事件
-(void)handleTapFrom:(UITapGestureRecognizer *)recognizer{
NSLog(@">>>tap it");
}