• 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
  • 相关阅读:
    ActiveMQ 5.x 消息队列
    Spring Boot 整合 ElasticSearch 框架
    Spring Boot 整合 Logback 日志框架
    Spring Boot 整合定时任务和异步任务处理
    Spring 中使用 Java 5.0 Executor
    二级指针三种内存模型综合训练
    08-图8 How Long Does It Take (25 分)
    08-图9 关键活动 (30 分)
    08-图7 公路村村通 (30 分)
    C函数之index、strtoul
  • 原文地址:https://www.cnblogs.com/cqb-learner/p/5815954.html
Copyright © 2020-2023  润新知