2013-08-21 25 views
0

我正在使用UIWebView呈現本地html內容(使用javascript的特殊html內容)。 html內容需要經常更新,但每次發生這種情況並重新加載web視圖時,它都會進行一些「跳舞」來刷新,這非常令人分心,尤其是因爲更新很小且經常發生。如果我可以凍結顯示,在頁面後面重新加載頁面,然後重新繪製顯示,我相信這看起來很好。但是,我可以這樣做嗎?或者有沒有其他方法可以無縫地刷新html頁面(或僅僅是頁面的一些內容)?如何重新加載UIWebView儘可能無縫

非常感謝您的幫助!

回答

1

您可以:

  1. 採取的UIWebView的 「截圖」,(見How to capture current view screenshot and reuse in code? (iPhone SDK));
  2. 通過UIWebView顯示在UIImageView;
  3. 重新加載UIWebView;
  4. UIWebView完成重新加載時,從視圖層次中刪除UIImageView

我懷疑有一種方法來告訴UIWebView「凍結」的顯示,而重裝的WebKit渲染提供約頁面加載狀態的用戶反饋。

另一種解決方案是用javascript(和XHR大概)更新DOM,不需要重新加載整個頁面的UIWebView

+0

感謝您的回覆。第一個選擇似乎有點過於複雜。你介意闡述第二種解決方案嗎? (不熟悉XHR) – rmp251

+0

第一種選擇真的不應該是一個麻煩。 javascript解決方案是使用Ajax重新加載HTML代碼的一部分,而無需重新加載整個頁面。如果你使用的是jQuery,那麼[一些函數來處理它](http://api.jquery.com/category/ajax/)。如果你從來沒有做過這樣的事情,谷歌「Ajax」,那裏有很多教程:) –

+0

終於得到它使用JavaScript的所有工作。我最終不得不同步我的JavaScript和Objective-C代碼。簡介: 1.使用'stringByEvaluatingJavaScriptFromString'從objective-C調用javascript。 2.使用[this approach](http://blog.techno-barje.fr/post/2010/10/06/UIWebView-secrets-part3-How-to-properly-call-ObjectiveC-from-Javascript/ )在javascript完成時發送給Objective-C。 現在很好用。 – rmp251

相關問題