0

我使用GestureRecognizer委托捏图像。我使用UIPinchGestureRecognizer委托进行捏合。但是,当我捏​​zoomIn它没有任何问题。当我zoomOut特定级别的图像从视图中消失。图像已经确定缩小级别

代码:

UIPinchGestureRecognizer *pinchGesture1 = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(ahandlePinch1:)]; 

[myImageView addGestureRecognizer:pinchGesture1]; 

-(void)ahandlePinch1:(UIPinchGestureRecognizer*)sender { 



    mCurrentScale += [sender scale] - mLastScale; 
    mLastScale = [sender scale]; 

    if (sender.state == UIGestureRecognizerStateEnded) 
    { 
     mLastScale = 1.0; 
    } 

    CGAffineTransform currentTransform = CGAffineTransformIdentity; 
    CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, mCurrentScale, mCurrentScale); 
    myImageView.transform = newTransform; 

} 

回答

0

这样做:

if([pinch state] == UIGestureRecognizerStateEnded) 
    { 

     lastScale = 1.0; 
     return; 
    } 

    CGFloat scale = 1.0 - (lastScale - [pinch scale]); 

    CGAffineTransform currentTransform = myImageView.transform; 
    CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale); 

    [myImageView setTransform:newTransform]; 

    lastScale = [pinch scale]; 

它应该一切工作(输入/输出)。