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");

    }

  • 相关阅读:
    参考教程 python 手动搭建ANN,并进行具体实现
    ubuntu18.04 ssh 问题
    Ubuntu18.04 启动后进不了界面 [ failed command: READ DMA ]
    Emacs 使用 markdown 模式
    linux 下 Emacs dired 模式 隐藏 dot file ".filename" 文件
    Ubuntu 16.04 安装后(使用旧的用户目录)登陆不进去
    AWS-SS配置过程
    Jupyter-notebook 导出时不显示Input[]代码
    [网络流24题] 方格取数问题 (最大权独立集---网络最小割)
    [网络流24题] 最长递增子序列 (最多不相交路径---网络最大流)
  • 原文地址:https://www.cnblogs.com/lzjsky/p/5057165.html
Copyright © 2011-2022 走看看