Tengo un UIScrollView que contiene un UIImageView y tengo algunos problemas para obtener el comportamiento correcto cuando el iPhone gira.Escala de la imagen para ajustar la pantalla en la rotación del iPhone
Objetivo: Estoy tratando de obtener la siguiente cuando se pasa de vertical a horizontal:
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| | AAAAAA |
|DDDDDDD| --> | CCCCCC |
|EEEEEEE| | EEEEEE |
|FFFFFFF| |_____GGGGGG_____|
|GGGGGGG|
---------
Aquí toda la imagen en la vista vertical se escala para caber en la vista horizontal cuando el iPhone gira. También está centrado. También estoy tratando de preservar la relación de aspecto. La interacción del usuario también está activada, y el usuario debe poder usar toda la pantalla para desplazar/ampliar la imagen.
Actualmente tengo el siguiente autoresizingMask
en el ScrollView:
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
Pero esto dicta la siguiente
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| |AAAAAA |
|DDDDDDD| --> [BBBBBB |
|EEEEEEE| [CCCCCC |
|FFFFFFF| [DDDDDD__________|
|GGGGGGG|
---------
Esta configuración conserva escala y desplazamiento desde la esquina superior izquierda.
Pregunta: ¿Es posible obtener este comportamiento utilizando adecuada autoresizingMask
? Si no es así, uno debe fijar probablemente
scrollView.autoresizingMask = UIViewAutoresizingNone;
y configurar manualmente zoomScale
y contentOffset
para la UIScrollView en la rotación. Pero, ¿dónde debería hacerse eso? ¿Qué tal animar ese cambio?
Solución: Modificando ligeramente por debajo de la respuesta que me dieron el comportamiento anterior usando el código de abajo:
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = UIViewContentModeCenter;
¡Gracias! Eso fue rápido. Para obtener el comportamiento correcto tuve que cambiar un poco nuestro código (ver arriba), pero esto me puso en la dirección directa. – user467225
No funciona en absoluto –