Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get the current zoom level in a UIScrollView?

In an attempt to create a workaround for centering an image in a UIScrollView and make it behave as Apple's Photos app does, I need to get the current zoom level and use the number to calculate the amount the image should be inset at each zoom level.

(Note: I am aware that some programmers are centering an image in a scrollview by centering the image in a UIView that is the same size as the scrollview. This does not give good results and I am trying to find out how apple made it work in the photos app.)

So, anyone know how to get the current zoom level of the content in a UIScrollView?

like image 546
Jonah Avatar asked Sep 20 '09 14:09

Jonah


2 Answers

Yep I got your problem's answer. I think you should use this method in your scrollViewController Class.

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{
    NSLog(@"Zoomscale %f",scale);
        NSLog(@"Zoom End!");
}
like image 76
zayar Avatar answered Nov 04 '22 12:11

zayar


In OS 3.x, there's a property called "zoomScale" that will give you what you want. In 2.x, I believe you can look directly at the contentView's transform to obtain this (but that is, of course, not 'official'.)

like image 44
Ben Gottlieb Avatar answered Nov 04 '22 13:11

Ben Gottlieb