2010-08-26 64 views
5

我有一個UIWebView,我將其設置爲一些文本並顯示,然後隱藏,更改文本並再次顯示。我遇到的問題是,當我再次使視圖可見時,我會立即看到舊文本。有沒有辦法強制UIWebView在顯示時顯示新文本?如何強制UIWebView在屏幕外更新?

的代碼是正確的排序,看起來像這樣:上回的觀點

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

我不知道是否值得注意,但模擬器似乎沒有任何問題。只有當我在iPhone 4上進行測試時。 – Scotch 2010-08-26 17:38:39

+0

'getCurrentFact'中發生了什麼? – falconcreek 2010-08-26 17:44:41

+0

getCurrentFact正在獲取要顯示的文本。 assignLabelText完成所有文本分配。 – Scotch 2010-08-26 17:47:24

回答

1

呼叫setNeedsDisplay

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

這仍然有滯後。如果我在Windows中做這樣的事情,我會考慮在設置文本告訴UI循環運行後調用DoEvents,但我似乎無法找到類似的東西。 – Scotch 2010-08-26 17:36:19

+1

嘗試在動畫之前添加延遲。可能發生的情況是您的動畫在動畫之前保存了視圖的樣子,並且從不給它渲染機會。 – 2010-08-26 19:27:43

+0

精彩絕倫!非常感謝這個提示,我擔心網頁視圖根本無法用於動畫,但* phew *他們可以:) – Chris 2011-10-11 10:57:48

2

你應該至少等到了的WebView webViewDidFinishLoad:被揭示的WebView前被解僱。即使這樣可能會有一些滯後,所以我會在揭示視圖之前增加額外的0.1秒延遲。

+0

我將我的延遲設置爲0.01,它工作得很好 – AlBeebe 2012-03-28 21:38:54

1

我做了一些新的功能來做我的動畫,並使用0.1的延遲通過performSelector運行它們。

它感覺像是一個黑客,但它的工作原理和它需要照顧與UILabels有相同的問題,他們的文本更改。

+0

嘗試0.1,它的工作原理有時候,其他時間只是空白。 – ninjaneer 2015-04-14 03:01:25