Monday 22 December 2014

Image zoom in /out feature in iOS [using default UIScrollView]

Step 1 : In .h file add ui-image-view object as ==>> IBOutlet UIImageView  *imgView;
 imgView object use to set image to zoom in /out



Step 2: No need to set UIScrollView object in .h / .m file, just set the delegate to file's owner from storyboard(Interface builder).

Step 3: set the zoom level of your image at scroll view:
Go-to Interface builder select UIScrollView , choose code inspector then set zoom : min & max
set min = 0.5; 50% zoom level and max = 8; 800% zoom level

If min = 0 , it meaning no lower limit is set and zoom out to infinite level ( which is not recommended). 


step 4: add this lines to .m file; UIScrollView delegates for zoom functionality


#pragma mark - Scroll View Delegate
//Object to zoom; in this case imgView
- (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView1{
    return imgView;
}


// method use to set imgView at center of scrollView
- (void)scrollViewDidZoom:(UIScrollView *)scrollView1 {
    UIView *subView = [scrollView1.subviews objectAtIndex:0];
    
    CGFloat offsetX = MAX((scrollView1.bounds.size.width - scrollView1.contentSize.width) * 0.5, 0.0);
    CGFloat offsetY = MAX((scrollView1.bounds.size.height - scrollView1.contentSize.height) * 0.5, 0.0);
    
    subView.center = CGPointMake(scrollView1.contentSize.width * 0.5 + offsetX,
                                 scrollView1.contentSize.height * 0.5 + offsetY);
}


No comments:

Post a Comment