zoukankan      html  css  js  c++  java
  • ios学习之UISwipeGestureRecognizer手势识别

    ios学习之UISwipeGestureRecognizer手势识别

     

     

    本文部分转自俺是一个瓜娃!!!的博客UISwipeGestureRecognizer ---手指动作,转载过来仅是为了自己查询方便。

     
     

    tap是指轻触手势。类似鼠标操作的点击。从iOS 3.2版本开始支持完善的手势api:

     

    • tap:轻触
    • long press:在一点上长按
    • pinch:两个指头捏或者放的操作
    • pan:手指的拖动
    • swipe:手指在屏幕上很快的滑动
    • rotation:手指反向操作

     

    - (void)viewDidLoad

     

    {

     [superviewDidLoad];

        infoView=[[UIViewalloc] initWithFrame:CGRectMake(20300768-40070)]; 

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

    }

  • 相关阅读:
    我为能准时下班而做的准备,以及由此的收获,同时总结下不足
    用象棋的思维趣说IT人的职业发展和钱途
    简历上如果出现过于高大上的项目,反而过犹不及:再论如何通过项目引出技术
    用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)
    如果当前没有拿得出手的简历,也别慌,努力的话最多两年情况就能改变
    分析若干没面试机会和没体现实力的简历
    IT人为了自己父母和家庭,更得注意自己的身体和心理健康
    Spring Cloud系列文,Feign整合Ribbon和Hysrix
    以互联网公司的经验告诉大家,架构师究竟比高级开发厉害在哪?
    博客园是个大金矿,管理员不挖掘有些可惜:给博客园提一些双赢的建议
  • 原文地址:https://www.cnblogs.com/haijieFeng/p/4103802.html
Copyright © 2011-2022 走看看