zoukankan      html  css  js  c++  java
  • 手势识别(拖动,旋转,捏合)

     09-手势识别(拖动,旋转,捏合)

        1.平移    
              UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self
                                                                          action:@selector(pan:)];
               添加手势
              [self.imageV addGestureRecognizer:pan];
              
              实现手势方法
               手指在屏幕上移动进调用
                - (void)pan:(UIPanGestureRecognizer *)pan{
                    获取当前手指移动的偏移量
                    CGPoint transP =  [pan translationInView:self.imageV];
                    NSLog(@"%@",NSStringFromCGPoint(transP));
                    Make它会清空上一次的形变.
                    self.imageV.transform = CGAffineTransformMakeTranslation(transP.x, transP.y);
                    
                    self.imageV.transform = CGAffineTransformTranslate(self.imageV.transform, 
                                                                               transP.x, transP.y);
                    复位,相对于上一次.
                    [pan  setTranslation:CGPointZero inView:self.imageV];
                }

        2.旋转
              
            添加旋转手势
            UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] 
                                         initWithTarget:self action:@selector(rotation:)];
            设置代理,设置代理的目的就让它能够同时支持旋转跟缩放
            rotation.delegate = self;
            添加手势
            [self.imageV addGestureRecognizer:rotation];
            
            
            当旋转时调用
            - (void)rotation:(UIRotationGestureRecognizer *)rotation{
                旋转也是相对于上一次
                self.imageV.transform = CGAffineTransformRotate(self.imageV.transform, 
                                                                     rotation.rotation);
                设置代理,设置代理的目的就让它能够同时支持旋转跟缩放
                rotation.delegate = self;
                也要做复位操作
                rotation.rotation = 0;
            }
        
        3.添加缩放手势
            添加缩放手势
            UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]                                             initWithTarget:self action:@selector(pinch:)];
            
           [self.imageV addGestureRecognizer:pinch];

            
            缩放手势时调用
            -(void)pinch:(UIPinchGestureRecognizer *)pinch{
                平移也是相对于上一次
                self.imageV.transform = CGAffineTransformScale(self.imageV.transform, pinch.scale, 
                                                                                      pinch.scale);
                复位
                pinch.scale = 1;
            }

  • 相关阅读:
    java线程系列---Runnable和Thread的区别 (转载)
    JAVA基础(多线程Thread和Runnable的使用区别(转载)
    error: undefined reference to 'property_set (转载)
    Django基本命令
    第三篇数据库与ORM
    PyCharm下创建并运行我们的第一个Django项目
    第二篇MTV模型、基本命令、简单配置
    第一篇web框架
    Django框架全面讲解
    MySQL的异常问题
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6986600.html
Copyright © 2011-2022 走看看