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

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;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容