zoukankan      html  css  js  c++  java
  • 手势识别

    #import "YZViewController.h"
    
    @interface YZViewController ()<UIGestureRecognizerDelegate>
    @property (weak, nonatomic) IBOutlet UIImageView *imageView;
    
    @end
    
    @implementation YZViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        // 移动图片
        UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
        [_imageView addGestureRecognizer:pan];
        
    }
    
    - (void)pan:(UIPanGestureRecognizer *)pan
    {
        
        CGPoint trans = [pan translationInView:_imageView];
        
        _imageView.transform = CGAffineTransformTranslate(_imageView.transform, trans.x, trans.y);
        
        // 复位
        [pan setTranslation:CGPointZero inView:_imageView];
    }
    
    // Simultaneous:同时
    // 默认是不支持多个
    // 当你使用一个手势的时候就会调用
    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
    {
        return YES;
    }
    
    - (void)addPinch
    {
        // 捏合
        UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];
        pinch.delegate = self;
        
        [_imageView addGestureRecognizer:pinch];
    }
    
    - (void)pinch:(UIPinchGestureRecognizer *)pinch
    {
        
        _imageView.transform = CGAffineTransformScale(_imageView.transform, pinch.scale, pinch.scale);
        // 复位
        pinch.scale = 1;
    }
    
    - (void)addRotation
    {
        // 旋转
        UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotation:)];
        rotation.delegate = self;
        [_imageView addGestureRecognizer:rotation];
    
    }
    
    
    - (void)rotation:(UIRotationGestureRecognizer *)rotation
    {
        
    //    _imageView.transform = CGAffineTransformMakeRotation(rotation.rotation);
        NSLog(@"%f",rotation.rotation);
        
        _imageView.transform = CGAffineTransformRotate(_imageView.transform, rotation.rotation);
        
        // 复位
        rotation.rotation = 0;
    }
    
    // 清扫
    - (void)addSwipe
    {
        UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipe:)];
        swipe.direction = UISwipeGestureRecognizerDirectionLeft;
        [_imageView addGestureRecognizer:swipe];
    }
    
    
    - (void)swipe:(UISwipeGestureRecognizer *)swipe
    {
        NSLog(@"");
    }
    
    - (void)addLong
    {
        // 长按
        UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
        
        longPress.minimumPressDuration = 2;
        // 手势识别之前的最大移动范围,超出这个范围就不能识别
        longPress.allowableMovement = 10;
        
        [_imageView addGestureRecognizer:longPress];
    
    }
    
    - (void)longPress:(UILongPressGestureRecognizer *)longPress
    {
        if (longPress.state == UIGestureRecognizerStateBegan) {
            
            NSLog(@"longPress");
        }
    }
    
    - (void)addTap
    {
        // 1.创建点按手势
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                                       initWithTarget:self action:@selector(tap:)];
        //    tap.numberOfTapsRequired = 2;
        //    tap.numberOfTouchesRequired = 2;
        tap.delegate = self;
        [_imageView addGestureRecognizer:tap];
    
    }
    
    // 返回NO,表示不触发手势事件
    //- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
    //{
    //    CGPoint pos = [touch locationInView:_imageView];
    //
    //    if (pos.x < _imageView.bounds.size.width * 0.5 ) {
    //        
    //        return NO;
    //    }
    //    return YES;
    //}
    
    
    - (void)tap:(UITapGestureRecognizer *)tap
    {
        NSLog(@"tap");
    }
    
    @end
  • 相关阅读:
    Intellij IDEA创建Maven Web项目<转>
    Spring事件监听Demo
    maven打包源码<转>
    枚举类转成json
    Java多线程编程中Future模式的详解<转>
    细数JDK里的设计模式<转>
    设计模式-观察者模式(下)<转>
    Sqlserver自定义函数Function
    sqlSQL2008如何创建定时作业
    JSON 序列化和反序列化——JavaScriptSerializer实现
  • 原文地址:https://www.cnblogs.com/521it/p/5000330.html
Copyright © 2011-2022 走看看