2009-09-20 14 views
7

En un intento de crear una solución para centrar una imagen en UIScrollView y hacer que se comporte como la aplicación de Fotos de Apple, necesito obtener el nivel de zoom actual y usar el número para calcular la cantidad que la imagen debe insertarse en cada zoom nivel.¿Cómo puedo obtener el nivel de zoom actual en UIScrollView?

(Nota: soy consciente de que algunos programadores están centrando una imagen en una vista de desplazamiento centrando la imagen en una UIView que es del mismo tamaño que la vista de desplazamiento. Esto no da buenos resultados y estoy tratando de averiguar cómo apple lo hizo funcionar en la aplicación de fotos.)

Entonces, ¿alguien sabe cómo obtener el nivel de zoom actual del contenido en un UIScrollView?

Respuesta

9

En OS 3.x, hay una propiedad llamada "zoomScale" que le dará lo que desea. En 2.x, creo que puede mirar directamente la transformación de contentView para obtener esto (pero eso es, por supuesto, no 'oficial').

+0

Estoy intentando: NSLog (@ "% d", myScrollView.zoomScale); en mi método scrollViewDidEndZooming, pero solo está obteniendo "0". ¿Qué estoy haciendo mal aquí? Sé que puedes usar zoomScale como setter, pero ¿también funciona para obtener la escala de zoom actual? – Jonah

13

Sí, recibí la respuesta de su problema. Creo que deberías usar este método en tu clase scrollViewController.

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{ 
    NSLog(@"Zoomscale %f",scale); 
     NSLog(@"Zoom End!"); 
} 
Cuestiones relacionadas