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;
            }

  • 相关阅读:
    OpenCascade Ray Tracing Rendering
    Create New Commands in Tcl
    OpenCascade Modeling Algorithms Fillets and Chamfers
    OpenCascade Modeling Algorithms Boolean Operations
    Construction of Primitives in Open Cascade
    Open Cascade Data Exchange STL
    Tcl Tk Introduction
    Open Cascade DataExchange IGES
    Netgen mesh library : nglib
    Hello Netgen
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6986600.html
Copyright © 2011-2022 走看看