2010-09-02 10 views
5

Estoy teniendo un momento muy difícil tratando de animar el cambio de tamaño de un UIWebView, y simplemente no sé a dónde más ir.Animar el cambio de tamaño de un UIWebView

Esto es lo que quiero lograr: Tengo dos vistas, una encima de la otra (imagine dos cuadrados, uno encima del otro). La vista superior es UIWebView, y la inferior se denominará UIView (no tengo ningún problema con la de abajo). Ajusto las dos vistas cada vez que se carga nuevo contenido muy bien. También tengo un botón que debe ocultar la vista inferior o mostrarla, dependiendo de su estado anterior.

Ahí es donde se produce el problema. Cuando la vista inferior está oculta, presionar el botón aumentará su marco y reducirá el marco UIWebView. Esta bien. Pero si se está mostrando la vista inferior y se pulsa el botón, el marco UIWebView se hacen más grandes, y hay algunos problemas con él:

  • Si el UIWebView se desplaza todo el camino hasta la parte inferior, que " salta "un poco antes de bajar (cada vez más grande);

  • Si el UIWebView se desplaza hasta la parte superior, se ve como se espera, siempre que haya suficiente contenido para desplazarse detrás de la vista inferior.

En general, lo que he aprendido es que si el contenido todavía detrás de la vista desde abajo es mayor que la cantidad de cambio de tamaño sucediendo, hay saltos sucede. De lo contrario, lo hace.

He investigado mucho, asked a previous question, así que supongo que es una consecuencia de la carga lenta del UIWebView. Este "salto" ocurre para que se cambie de tamaño automáticamente (mostrando todo el contenido, incluso si parte de él está fuera de la pantalla) y luego se mueve hacia abajo. De lo contrario, se expandiría y cargaría contenido nuevo al mismo tiempo, lo que requeriría mucha más potencia de procesador.

He experimentado con marcos, límites y centros, y hasta ahora no he llegado a ninguna parte. ¿Mi suposición es correcta? ¿No hay una forma sencilla de cambiar el tamaño de la forma de cambiar el tamaño del UIWebView para que solo se reduzca (al aumentar) y mantenga el desplazamiento inferior?

En teoría, creo que la forma correcta sería hacer que el UIWebView sea más grande hasta la parte superior, manteniendo su posición inferior actual, y luego anímela bajándolo. De esta forma, el contenido superior ya estaría cargado. Pero no he tenido ningún éxito con eso.

Si alguien tiene alguna experiencia con esto, por favor comparte. Y muchas gracias.

Respuesta

0

Si se desplaza hacia la parte inferior de una página web suficientemente alta, intente animar la vista web hacia abajo sin cambiar su tamaño, luego cambie la altura de las vistas web para que la parte superior vuelva a donde debería estar. Puede llenar temporalmente el espacio que queda a medida que la vista web se mueve hacia abajo con algún tipo de patrón.

+0

Eso no sería muy bonito para los usuarios ... Y aún así, no sé de ninguna manera para detectar si el UIWebView se ha desplazado lo suficiente. He experimentado con javascript (desplazamiento de página y altura de desplazamiento total) sin éxito, también. Necesito una forma de obtener el desplazamiento en la parte inferior, no en la parte superior (eso es lo que devuelve el offset de página). –

Cuestiones relacionadas