2012-06-10 70 views
0

加載圖像我有問題,UIWebView延遲當從URL加載圖像。UIWebView有一個延遲時,從URL

在我的代碼是行加載本地HTML文件:

NSBundle *thisBundle = [NSBundle mainBundle]; 
NSString *path = [thisBundle pathForResource:@"detail" ofType:@"html"]; 
NSString *html = [NSString stringWithContentsOfFile:path]; 
NSString *htmlString = [NSString stringWithFormat:html, imageURL]; 
[webView loadHTMLString:htmlString baseURL:nil]; 

,並在我的detail.html文件行之一:

<img src="%@" height="100%" alt="…"></img> 

,現在當我按下按鈕,轉到UIWebView首先是白色的,幾秒後顯示圖像和文字。 我知道,從URL加載圖像需要時間,但它可能在第一次顯示文本和下一個等待加載圖像?

一般來說,我的想法是:按鈕 - >去UIWebView - >顯示文本 - >時,它的加載

回答

0

隨着馬丁^ h的幫助下,我設法解決這個問題。

首先在我local.html文件,我加入<head>部分:

<script type="text/javascript"> 
    function loadImage(imageSource) { 
     document.getElementById("picture").src=imageSource; 
    } 
</script> 

未來在<body>部分:

<img src="" style="border: none;" id="picture"> 

和明年在我的UIViewController我添加的委託方法:

- (void) webViewDidFinishLoad:(UIWebView *)web { 
    [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"loadImage('http://example.com/image.jpg')"]]; 
} 
0

有一些事情可以做節目的形象,一個是隻顯示下方的一個視圖顯示文本的uiwebview。 將uiwebview的alpha設置爲0(因此它是透明的),然後當您收到uiwebview加載完成的通知時,請使用動畫將其淡入,然後使用文本刪除視圖。

當調用webViewDidFinishLoad:時,您將知道UIWebView何時完成加載。

對於動畫是這樣的:

[UIView animateWithDuration:0.4 
       animations:^ { 
        self.webView.alpha = 1.0;       
       }]; 
+0

你描述的解決方案理論上是好的,但我想保持onl如果可能的話,UIWebView。 – murzynpl

+0

然後,你將不得不使用JavaScript來控制什麼出現在你的web視圖和什麼時候。 – Gruntcakes

+0

**馬丁H,**你可以寫更多如何用JavaScript做到這一點? – murzynpl