zoukankan      html  css  js  c++  java
  • 手势(5)——利用GestureRecognizer

    #import "MJmainViewController.h"

    @interface MJmainViewController ()

    @end

    @implementation MJmainViewController

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }


    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        self.title=@"UITapGestureRecognizer";
        self.view.backgroundColor=[UIColor greenColor];
        
        //============= 轻拍==============
        UITapGestureRecognizer *onefinger=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(onetap:)];
        onefinger.numberOfTapsRequired=1;
        onefinger.numberOfTouchesRequired=1;
        [self.view addGestureRecognizer:onefinger];
        
        
        UITapGestureRecognizer *doublefinger=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(twotap:)];
        
        doublefinger.numberOfTapsRequired=2;
        doublefinger.numberOfTouchesRequired=1;
        [self.view addGestureRecognizer:doublefinger];
        [onefinger  requireGestureRecognizerToFail:doublefinger];
        
        
        //==============缩放=============
        UIPinchGestureRecognizer *pinch=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(onPinch:)];
        
        [self.view addGestureRecognizer:pinch];
        
        
        //===============拖拽=============
    #if 1
        UIPanGestureRecognizer *pan =[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(onPan:)];
        pan.maximumNumberOfTouches=2;
        pan.minimumNumberOfTouches=1;
        [self.view addGestureRecognizer:pan];
    #endif
        
        //===============横扫=============
        UISwipeGestureRecognizer *swiperight =[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(onSwipe:)];
        swiperight.direction=UISwipeGestureRecognizerDirectionRight;
        [self.view addGestureRecognizer:swiperight];
        
        UISwipeGestureRecognizer *swipeleft =[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(onSwipe:)];
        swipeleft.direction=UISwipeGestureRecognizerDirectionLeft;
        [self.view addGestureRecognizer:swipeleft];
        
        UISwipeGestureRecognizer *swipeup =[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(onSwipe:)];
        swipeup.direction=UISwipeGestureRecognizerDirectionUp;
        [self.view addGestureRecognizer:swipeup];
        
        UISwipeGestureRecognizer *swipedown =[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(onSwipe:)];
        swipedown.direction=UISwipeGestureRecognizerDirectionDown;
        [self.view addGestureRecognizer:swipedown];
        
        [pan requireGestureRecognizerToFail:swiperight];
        [pan requireGestureRecognizerToFail:swipeleft];
        [pan requireGestureRecognizerToFail:swipeup];
        [pan requireGestureRecognizerToFail:swipedown];

       //===================旋转=================
        UIRotationGestureRecognizer *rotation=[[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(onRatation:)];
        [self.view addGestureRecognizer:rotation];
        

        

    //  ====================边界拖入界面==================
        UIScreenEdgePanGestureRecognizer *screenleft =[[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:self action:@selector(onscreen:)];
        screenleft.edges=UIRectEdgeLeft;
        [self.view addGestureRecognizer:screenleft];
        
        UIScreenEdgePanGestureRecognizer *screenfight =[[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:self action:@selector(onscreen:)];
        screenfight.edges=UIRectEdgeRight;
        [self.view addGestureRecognizer:screenfight];
        
        [swiperight requireGestureRecognizerToFail:screenleft];
        

        
        //  ====================长摁===================
        UILongPressGestureRecognizer *longpress=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(onLongPress:)];
        longpress.numberOfTouchesRequired=1;
        [self.view addGestureRecognizer:longpress];
        
        
        
        [onefinger requireGestureRecognizerToFail:longpress];
        

        
        
    }





    -(void)onetap:(UITapGestureRecognizer *)sender
    {
        NSLog(@"单击");
    }



    -(void)twotap:(UITapGestureRecognizer *)sender
    {
        NSLog(@"双击");
    }



    -(void)onPinch:(UIPinchGestureRecognizer *)sender
    {
        if (sender.scale>1) {
            NSLog(@"放大");
        }else{
            NSLog(@"缩放");}
    }

    -(void)onPan:(UIPanGestureRecognizer *)sender
    {
        NSLog(@"拖拽");
    }

    -(void)onSwipe:(UISwipeGestureRecognizer *)sender
    {
        
        if (sender.direction == UISwipeGestureRecognizerDirectionRight) {
            
            NSLog(@"右扫");
        }else{
            if ( sender.direction==UISwipeGestureRecognizerDirectionLeft) {
                NSLog(@"左扫");
            }else{
                if (sender.direction==UISwipeGestureRecognizerDirectionUp ) {
                    NSLog(@"向上扫");
                    
                }else{
                    NSLog(@"向下扫");
                    
                }
            }
            
        }
    }

    -(void)onRatation:(UIRotationGestureRecognizer *)sender
    {
        NSLog(@"%f",sender.rotation);
        
       
    }

    -(void)onscreen:(UIScreenEdgePanGestureRecognizer *)sender
    {
        if (sender.edges==UIRectEdgeLeft) {
            NSLog(@"左边的妹妹快出来");
        }else{
        NSLog(@"右边的妹妹快出来");
        }
    }


    -(void)onLongPress:(UILongPressGestureRecognizer *)sender
    {
        NSLog(@"长摁");
    }

    @end

  • 相关阅读:
    Matching「CEOI2011」
    中位数之中位数「NOIP多校联考 2019」
    积木「CSP-S全国排位赛第一场」
    序列「CSP-S全国排位赛第一场」
    GT考试「HNOI2008」
    动物园「NOI2014」
    Radio Transmission「BOI2009」
    小Z的袜子「国家集训队」
    BZOJ3624: [Apio2008]免费道路
    BZOJ1190: [HNOI2007]梦幻岛宝珠
  • 原文地址:https://www.cnblogs.com/wangdelong/p/3848575.html
Copyright © 2011-2022 走看看