使用手势对UIImageView进行缩放、…

来源:互联网 发布:会计电算化模拟软件 编辑:程序博客网 时间:2024/05/18 13:08
需要添加协议

// 添加所有的手势
- (void) addGestureRecognizerToView:(UIView *)view
{
    // 旋转手势
   UIRotationGestureRecognizer *rotationGestureRecognizer =[[UIRotationGestureRecognizer alloc] initWithTarget:selfaction:@selector(rotateView:)];
    [viewaddGestureRecognizer:rotationGestureRecognizer];
    
    // 缩放手势
    UIPinchGestureRecognizer*pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchView:)];
    [viewaddGestureRecognizer:pinchGestureRecognizer];
    
    // 移动手势
    UIPanGestureRecognizer*panGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panView:)];
    [viewaddGestureRecognizer: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 = [panGestureRecognizertranslationInView:view.superview];
       [view setCenter:(CGPoint){view.center.x +translation.x, view.center.y + translation.y}];
       [panGestureRecognizer setTranslation:CGPointZeroinView:view.superview];
    }
}


 
//如果处理的是图片,别忘了
[imageView setUserInteractionEnabled:YES]; 
[imageViewsetMultipleTouchEnabled:YES]; 
原创粉丝点击