zoukankan      html  css  js  c++  java
  • ios开发之手势处理 之手势识别一

    #import "ViewController.h"
    
    @interface ViewController ()<UIGestureRecognizerDelegate>
    @property (weak, nonatomic) IBOutlet UIImageView *imageV;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        
        //1.创建手势
        UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)];
        //设置轻扫的方向(一个轻扫手势只能对应一个方向)
        swipe.direction = UISwipeGestureRecognizerDirectionLeft;
        
        
        UISwipeGestureRecognizer *swipe1 = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)];
        //设置轻扫的方向(一个轻扫手势只能对应一个方向)
        swipe1.direction = UISwipeGestureRecognizerDirectionRight;
    
        
        //2.添加手势
        [self.imageV addGestureRecognizer:swipe];
        [self.imageV addGestureRecognizer:swipe1];
    }
    
    
    //当轻扫时调用
    - (void)swipe:(UISwipeGestureRecognizer *)swipe{
        
        if (swipe.direction == UISwipeGestureRecognizerDirectionLeft) {
            NSLog(@"left");
        }else if(swipe.direction == UISwipeGestureRecognizerDirectionRight){
            NSLog(@"right");
        }
        
        //NSLog(@"%s",__func__);
    }
    
    
    
    
    //长按手势
    - (void)longP{
        //1.创建手势
        UILongPressGestureRecognizer *longP = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longP:)];
        
        //2.添加手势
        [self.imageV addGestureRecognizer:longP];
    }
    
    
    //当长按时调用(当长按移动时,该方法会持续调用)
    - (void)longP:(UILongPressGestureRecognizer *)longP{
        NSLog(@"%s",__func__);
        //判断手势的状态
        if (longP.state == UIGestureRecognizerStateBegan) {
            NSLog(@"开始长按");
        }else if(longP.state == UIGestureRecognizerStateChanged){
             NSLog(@"长按时移动");
        }else if(longP.state == UIGestureRecognizerStateEnded){
            NSLog(@"手指离开");
        }
        
    }
    
    
    
    
    
    //点按手势
    - (void)setUpTap{
    
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap)];
        
        tap.delegate = self;
        
        //2.添加手势
        [self.imageV addGestureRecognizer:tap];
        
    }
    
    
    
    
    //3.实现手势方法
    - (void)tap{
        
        NSLog(@"%s",__func__);
    }
    
    
    //是否允许接收手指.
    //-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
        
        //让当前的图片,左边不能点击 ,右边能够点击
        //获取当前手指的点
    //    CGPoint curP = [touch locationInView:self.imageV];
    //    
    //    if (curP.x > self.imageV.frame.size.width * 0.5) {
    //        //在右边
    //        return YES;
    //    }else{
    //        //在左边
    //        return NO;
    //    }
    //    
    //
    //}
    
    
    
    
    
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
  • 相关阅读:
    一行代码搞定Dubbo接口调用
    测试周期内测试进度报告规范
    jq 一个强悍的json格式化查看工具
    浅析Docker容器的应用场景
    HDU 4432 Sum of divisors (水题,进制转换)
    HDU 4431 Mahjong (DFS,暴力枚举,剪枝)
    CodeForces 589B Layer Cake (暴力)
    CodeForces 589J Cleaner Robot (DFS,或BFS)
    CodeForces 589I Lottery (暴力,水题)
    CodeForces 589D Boulevard (数学,相遇)
  • 原文地址:https://www.cnblogs.com/cqb-learner/p/5815954.html
Copyright © 2011-2022 走看看