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
  • 相关阅读:
    Get distinct count of rows in the DataSet
    单引号双引号的html转义符
    PETS Public English Test System
    Code 39 basics (39条形码原理)
    Index was outside the bounds of the array ,LocalReport.Render
    Thread was being aborted Errors
    Reportviewer Error: ASP.NET session has expired
    ReportDataSource 值不在预期的范围内
    .NET/FCL 2.0在Serialization方面的增强
    Perl像C一样强大,像awk、sed等脚本描述语言一样方便。
  • 原文地址:https://www.cnblogs.com/521it/p/5000330.html
Copyright © 2011-2022 走看看