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

  • 相关阅读:
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周课程总结
    第十二周课程总结
    第十一周课程总结
    第十周课程总结
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第五周课程总结&实验报告(四)
    2019JAVA课程总结
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6986600.html
Copyright © 2011-2022 走看看