template studio component user-interface xamarin xamarin.ios autolayout ios-autolayout

user-interface - component - xamarin studio



Xamarin iOS: ¿Diseño automático en la vista de desplazamiento? (1)

Es un poco complicado de explicar.

Como sabemos, antes de que el autolayout funcione, debemos establecer restricciones sobre ellos, de acuerdo con esas restricciones el compilador puede determinar el Frame (posición y tamaño) en los controles.

Sin embargo, UIScrollView es un poco diferente de UIView . En general, solo debemos configurar left,right,top,bottom , pero en UIScrollView , tiene una definición llamada contentSize que determina el tamaño real de scrollview. entonces las restricciones que establecemos arriba no son suficientes.

Entonces, como solución alternativa, agregamos una vista de contenedor dentro de la vista de desplazamiento para determinar contentSize.

1. Restricción en scrollview (área verde en el siguiente gif)

2. Restricción en la vista del contenedor (área roja en el siguiente archivo .gif)

preste atención: establecemos un ancho adicional (igual a scrollview) para indicar que el ancho es fijo, lo que significa que no podemos desplazarnos horizontalmente, pero se permite la orientación vertical.

3. Restricción en la vista interior (área azul en el siguiente gif)

Resultado de la prueba :

iphone 5s

iPad Air2

Tengo una vista de desplazamiento en mi guión gráfico en la que he agregado las restricciones superior, izquierda, derecha e inferior para que cambie el tamaño automáticamente de acuerdo con los diferentes tamaños de pantalla. El problema es que si agrego vista de imagen u otras cosas dentro de esta vista de desplazamiento y pongo restricciones en esta vista de imagen para mantener cierta distancia desde arriba, izquierda, derecha e inferior de los límites de la vista de desplazamiento. Simplemente no funciona. Me gustaría tener todo redimensionado de acuerdo con el tamaño de pantalla del dispositivo de destino. ¿Cómo podría hacerlo?

El área gris clara es mi vista de desplazamiento, el área gris es vista normal, el elemento más interno es la vista de imagen.