iOS 手势识别(拖动、旋转、捏合)

来源:互联网 发布:精品推荐软件下载 编辑:程序博客网 时间:2024/05/26 09:55
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;        }
阅读全文
0 0
原创粉丝点击