0

I'm getting images from remote server and displaying in UIImageView then doing pinch gesture to this imageview. But when i pinching image, i'm getting image stretching. It's loosing original resolution and quality.

mmageView=[[UIImageView alloc]initWithFrame:CGRectMake(50,50,150,150)];
 [self.view addSubview:mmageView];

 UIPinchGestureRecognizer *dbpinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(dbhandlePinch:)];
 [mmageView addGestureRecognizer:dbpinchGesture];

UIPinchGesture:

 -(void)dbhandlePinch:(UIPinchGestureRecognizer*)recognizer {

 if([recognizer state] == UIGestureRecognizerStateBegan) {
 // Reset the last scale, necessary if there are multiple objects with different scales
 LastScale = [recognizer scale];
 }

 if ([recognizer state] == UIGestureRecognizerStateBegan ||
 [recognizer state] == UIGestureRecognizerStateChanged) {

 CGFloat currentScale = [[[recognizer view].layer valueForKeyPath:@"transform.scale"] floatValue];

 // Constants to adjust the max/min values of zoom
 // const CGFloat kMaxScale = 2.0;
 const CGFloat kMinScale = 0.8;

 CGFloat newScale = 1 -  (LastScale - [recognizer scale]);
 // newScale = MIN(newScale, kMaxScale / currentScale);
 newScale = MAX(newScale, kMinScale / currentScale);
 CGAffineTransform transform = CGAffineTransformScale([[recognizer view] transform], newScale, newScale);
 [recognizer view].transform = transform;

 LastScale = [recognizer scale];  // Store the previous scale factor for the next pinch gesture call
 }

 }
user3351727
  • 67
  • 4
  • 14

2 Answers2

1

For pinch zoom add your imageView in a scrollView and Import UIScrollViewDelegate

- (void)viewDidLoad
{
    [super viewDidLoad];

    //for pinch gesture
    _scrollView.minimumZoomScale = 0.5;
    _scrollView.maximumZoomScale = 6.0;
    _scrollView.contentSize = CGSizeMake(_imageView.frame.size.width, _imageView.frame.size.height);
    _scrollView.delegate = self;

}
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return _imageView;
}
Vineesh TP
  • 7,755
  • 12
  • 66
  • 130
0

UIScrollView makes supporting the pinch gestures for zooming easy. Better solution in Apple Documentation.

iOS
  • 3,526
  • 3
  • 37
  • 82