2010-08-26 4 views
5

Ich habe eine UIWebView, die ich auf etwas Text einstellen und anzeigen und dann ausblenden, den Text ändern und erneut anzeigen. Das Problem, zu dem ich renne, ist, dass wenn ich die Ansicht wieder sichtbar mache, ich den alten Text für einen Augenblick sehe. Gibt es eine Möglichkeit, das UIWebView zu zwingen, den neuen Text anzuzeigen, wenn es angezeigt wird?Wie erzwinge ich, dass ein UIWebView aktualisiert wird, wenn es offline ist?

Der Code ist richtig bestellt und sieht wie folgt aus:

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

Ich weiß nicht, ob es erwähnenswert ist oder nicht, aber der Emulator scheint keine Probleme damit zu haben. Es ist nur, wenn ich auf meinem iPhone 4 testen. – Scotch

+0

Was passiert in 'GetCurrentFact'? – falconcreek

+0

getCurrentFact ruft nur den Text ab, der angezeigt werden soll. assignLabelText führt die gesamte Textzuweisung aus. – Scotch

Antwort

1

Anruf setNeedsDisplay auf Blick zurück

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

Das hat immer noch die Verzögerung. Wenn ich in Windows so etwas mache, würde ich DoEvents aufrufen, nachdem ich den Text so eingestellt habe, dass die UI-Schleife ausgeführt wird, aber so etwas kann ich nicht finden. – Scotch

+1

Versuchen Sie, eine Verzögerung hinzuzufügen, bevor Sie die Animation ausführen. Was wahrscheinlich passiert, ist, dass Ihre Animation speichert, wie die Ansicht vor der Animation aussieht, und niemals eine Chance zum Rendern bietet. –

+0

Funktioniert hervorragend! Vielen Dank für diesen Tipp, ich befürchtete das Schlimmste, dass die Webansicht einfach nicht in Animationen verwendet werden konnte, aber * puh * sie können :) – Chris

2

Sie bis mindestens webViewDidFinishLoad: der Webansicht abwarten sollte, bevor enthüllt die Webansicht abgefeuert wird. Selbst dann kann es zu Verzögerungen kommen, daher füge ich eine zusätzliche Verzögerung von 0,1 Sekunden hinzu, bevor ich die Ansicht enthülle.

+0

Ich setzte meine Verzögerung auf 0,01 und es funktionierte gut – AlBeebe

1

Ich machte einige neue Funktionen, um meine Animationen zu machen, und nutzte eine Verzögerung von 0.1, um sie über performSelector laufen zu lassen.

Es fühlt sich an wie ein Hack, aber es funktioniert und es kümmert sich um die gleichen Probleme, die ich mit UILabels hatte, die ihren Text ändern.

+0

Versucht 0,1, es funktioniert manchmal ist es einfach leer. – ninjaneer

Verwandte Themen