Skip to content

Instantly share code, notes, and snippets.

@runeb
Forked from andreyvit/gist:384389
Created April 3, 2014 01:15
Show Gist options
  • Save runeb/9946607 to your computer and use it in GitHub Desktop.
Save runeb/9946607 to your computer and use it in GitHub Desktop.
// call when zoom level or page size changes (i.e. after zooming or after rotation)
- (void)updateContentInsetForPageScrollView:(UIScrollView *)pageScrollView {
UIImageView *imageView = (UIImageView *) [pageScrollView viewWithTag:TAG_IMAGE_VIEW];
CGFloat zoomScale = pageScrollView.zoomScale;
CGSize imageSize = imageView.bounds.size;
CGSize zoomedImageSize = CGSizeMake(imageSize.width * zoomScale, imageSize.height * zoomScale);
CGSize pageSize = pageScrollView.bounds.size;
UIEdgeInsets inset = UIEdgeInsetsZero;
if (pageSize.width > zoomedImageSize.width) {
inset.left = (pageSize.width - zoomedImageSize.width) / 2;
inset.right = -inset.left;
}
if (pageSize.height > zoomedImageSize.height) {
inset.top = (pageSize.height - zoomedImageSize.height) / 2;
inset.bottom = -inset.top;
}
pageScrollView.contentInset = inset;
}
-(void)scrollViewDidZoom:(UIScrollView *)pageScrollView {
[self updateContentInsetForPageScrollView:pageScrollView];
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
// loop through all pages, adjusting their sizes
// and calling updateContentInsetForPageScrollView for each
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment