2010-08-26 6 views
5

Tengo un UIWebView que estoy configurando para mostrar texto y mostrar y luego ocultar, cambiar el texto y volver a mostrar. El problema al que me estoy arriesgando es que cuando vuelvo visible la vista, veo el texto anterior por un instante. ¿Hay alguna manera de forzar a UIWebView a mostrar el nuevo texto cuando se muestra?¿Cómo fuerzo a UIWebView para actualizar cuando está fuera de pantalla?

El código se ordena correctamente y se ve así:

[back assignLabelText:[facts getCurrentFact].answer]; 
[self doAnimation:back.view andViewToHide:front.view flipRight:YES]; 
+0

No sé si vale la pena señalarlo o no, pero el emulador no parece tener ningún problema con esto. Es solo cuando estoy probando en mi iPhone 4. – Scotch

+0

¿Qué está pasando en 'getCurrentFact'? – falconcreek

+0

getCurrentFact es solo obtener el texto para mostrar. assignLabelText hace toda la asignación de texto. – Scotch

Respuesta

1

llamada setNeedsDisplay a la vista de la espalda

[back assignLabelText:[facts getCurrentFact].answer]; 
[[back view] setNeedsDisplay]; 
[self doAnimation:back.view andViewToHide:front.view flipRight:YES]; 
+0

que aún tenga el retraso? Si estuviera haciendo algo como esto en Windows consideraría llamar a DoEvents después de configurar el texto para decirle al UI loop que se ejecute, pero parece que no puedo encontrar nada como eso. – Scotch

+1

Intenta agregar un retraso antes de hacer la animación. Lo que probablemente ocurra es que su animación está guardando el aspecto de la vista antes de la animación y nunca le da la oportunidad de renderizar. –

+0

¡Funciona brillantemente! Muchas gracias por este consejo, temía lo peor de que la vista web simplemente no se podía usar en animaciones, pero * phew * pueden :) – Chris

2

usted debe esperar hasta al menos es despedido de webViewDidFinishLoad: la vista web antes de revelar la vista web. Incluso entonces puede haber un retraso, así que agrego un retraso adicional de 0.1 segundos antes de revelar la vista.

+0

Configuré mi demora en 0.01 y funcionó muy bien – AlBeebe

1

Hice algunas funciones nuevas para hacer mis animaciones y usé un retraso de 0.1 para ejecutarlas a través de performSelector.

Se siente como un truco, pero funciona y se ocupa de los mismos problemas que tenía con UILabels que han cambiado su texto.

+0

Probé 0.1, funciona a veces, otras veces está en blanco. – ninjaneer

Cuestiones relacionadas