使用手势对UIImageView进行缩放、旋转和移动

来源:互联网 发布:淘宝秋季女装新款 编辑:程序博客网 时间:2024/05/18 13:26
// 添加所有的手势  - (void) addGestureRecognizerToView:(UIView *)view  {      // 旋转手势      UIRotationGestureRecognizer *rotationGestureRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateView:)];      [view addGestureRecognizer:rotationGestureRecognizer];            // 缩放手势      UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchView:)];      [view addGestureRecognizer:pinchGestureRecognizer];            // 移动手势      UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panView:)];      [view addGestureRecognizer:panGestureRecognizer];  }    // 处理旋转手势  - (void) rotateView:(UIRotationGestureRecognizer *)rotationGestureRecognizer  {      UIView *view = rotationGestureRecognizer.view;      if (rotationGestureRecognizer.state == UIGestureRecognizerStateBegan || rotationGestureRecognizer.state == UIGestureRecognizerStateChanged) {          view.transform = CGAffineTransformRotate(view.transform, rotationGestureRecognizer.rotation);          [rotationGestureRecognizer setRotation:0];      }  }    // 处理缩放手势  - (void) pinchView:(UIPinchGestureRecognizer *)pinchGestureRecognizer  {      UIView *view = pinchGestureRecognizer.view;      if (pinchGestureRecognizer.state == UIGestureRecognizerStateBegan || pinchGestureRecognizer.state == UIGestureRecognizerStateChanged) {          view.transform = CGAffineTransformScale(view.transform, pinchGestureRecognizer.scale, pinchGestureRecognizer.scale);          pinchGestureRecognizer.scale = 1;      }  }    // 处理拖拉手势  - (void) panView:(UIPanGestureRecognizer *)panGestureRecognizer  {      UIView *view = panGestureRecognizer.view;      if (panGestureRecognizer.state == UIGestureRecognizerStateBegan || panGestureRecognizer.state == UIGestureRecognizerStateChanged) {          CGPoint translation = [panGestureRecognizer translationInView:view.superview];          [view setCenter:(CGPoint){view.center.x + translation.x, view.center.y + translation.y}];          [panGestureRecognizer setTranslation:CGPointZero inView:view.superview];      }  }  



[self addGestureRecognizerToView:view];       //如果处理的是图片,别忘了  [imageView setUserInteractionEnabled:YES];    [imageView setMultipleTouchEnabled:YES];  


0 0
原创粉丝点击