zoukankan      html  css  js  c++  java
  • ios 手势加变形

    @interface ViewController () <UIGestureRecognizerDelegate>
    @property (weak, nonatomic) IBOutlet UIImageView *imageView;
    @end
    
    @implementation ViewController
    //手势代理方法  返回YES是可以同时触发
    -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
        return YES;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        //拖拽
        UIPanGestureRecognizer *panGR = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panGR:)];
        self.imageView.userInteractionEnabled = YES;
        [self.view addGestureRecognizer:panGR];
    
        //捏合
        UIPinchGestureRecognizer *pinchGR = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchGR:)];
        pinchGR.delegate = self;
        [self.view addGestureRecognizer:pinchGR];
    
        //旋转
        UIRotationGestureRecognizer *rotationGR = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotationGR:)];
        rotationGR.delegate = self;
        [self.view addGestureRecognizer:rotationGR];
    
        //点击
        UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapGR:)];
        [self.view addGestureRecognizer:tapGR];
        
    }
    
    -(void)tapGR:(UITapGestureRecognizer*)gr {
        self.imageView.transform = CGAffineTransformIdentity;
    }
    
    -(void)rotationGR:(UIRotationGestureRecognizer*)gr {
        CGFloat rotation = gr.rotation;
        self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, rotation);
        gr.rotation = 0;
    }
    
    -(void)pinchGR:(UIPinchGestureRecognizer*)gr {
        CGFloat scale = gr.scale;
        self.imageView.transform = CGAffineTransformScale(self.imageView.transform, scale, scale);
        gr.scale = 1;
    }
    
    -(void)panGR:(UIPanGestureRecognizer*)gr {
    //    CGPoint translation = [gr translationInView:self.view];
    //    CGPoint center = self.imageView.center;
    //    center.x += translation.x;
    //    center.y += translation.y;
    //    self.imageView.center = center;
    //    [gr setTranslation:CGPointZero inView:self.view];
        
        
        CGPoint translation = [gr translationInView:self.view];
        self.imageView.transform = CGAffineTransformTranslate(self.imageView.transform, translation.x, translation.y);
        [gr setTranslation:CGPointZero inView:self.view];
    }
    
    成功的三大原则: 1、坚持 2、不要脸 3、坚持不要脸
  • 相关阅读:
    服务器搭建FTP
    VS2012 +OpenCv2.4.4配置
    python3:语法变动 及新特性
    Strlen()与sizeof()
    find命令下的atime,ctime,mtime
    C语言实现线性表
    去除zabbix calculate 模式下,有时候分母为零的情况(Cannot evaluate expression: division by zero. )
    C语言面试题汇总之一
    全局变量/静态全局变量/局部变量/静态局部变量的异同点
    MFC的自定义消息的定义与使用
  • 原文地址:https://www.cnblogs.com/xulinmei/p/7420209.html
Copyright © 2011-2022 走看看