zoukankan      html  css  js  c++  java
  • ios学习之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");

    }

  • 相关阅读:
    [课程设计]Scrum 1.5 多鱼点餐系统开发进度(点餐页面框架修复及继续布置)
    [课程设计]Scrum 1.4 多鱼点餐系统开发进度(点餐页面框架布置)
    [课程设计]Scrum 1.3 多鱼点餐系统开发进度(系统主界面框架&美化)
    任务完成情况
    SCRUM项目4.0
    操作系统 实验三 进程调度模拟程序
    Scrum 项目3.0
    操作系统 实验二、作业调度模拟程序 【完整版】
    Scrum 项目2.0
    0428 《构建之法》第6~7章读后感
  • 原文地址:https://www.cnblogs.com/lzjsky/p/5057165.html
Copyright © 2011-2022 走看看