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

    }

  • 相关阅读:
    iOS中的导航条UINavigationController(UISegmentedControl)的基本使用(界面中传值的3中方法,单例,属性,代理)
    iOS中的分页控件(UIPageControl)
    iOS中的UIScorllView(滑动控件,时机控制)的基本使用
    iOS中ScrollView(滚屏,引导界面,和判段是否是第一次登陆)
    iOS中自定义UIView(用接口获取Lable和TextFile中的值)
    iOS中的手势识别的积累:UIGestureRecognizer(轻拍手势,长按手势,清扫手势,平移手势,捏合手势,旋转手势,屏幕边缘平移手势) ----仿射变换
    iOS中纯手工图片浏览器
    IOS中的TOM(解决缓存,图片加载)
    iOS中的NSString引用计数问题(-1和整数最大值)
    iOS中的内存管理精讲
  • 原文地址:https://www.cnblogs.com/lzjsky/p/5057165.html
Copyright © 2020-2023  润新知