views:

240

answers:

2

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?

+2  A: 

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'.)

Ben Gottlieb
I'm trying: NSLog(@"%d", myScrollView.zoomScale); in my scrollViewDidEndZooming method, but it's only getting "0". What am I doing wrong here? I know you can use zoomScale as a setter, but does is also work to get the current zoom scale?
Jonah
A: 

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!");
}
zayar