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

2016-09-06  本文已影响17人  冷洪林

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;
    }
上一篇 下一篇

猜你喜欢

热点阅读