2011-11-06 21 views
1

我在UIWebView中顯示一個HTML頁面是這樣的:UIWebView只能使用PNG而不使用JPG?

[webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] 
    pathForResource:@"index" ofType:@"html"]isDirectory:NO]]]; 

的HTML包含的圖像的參考:

<img src="ScreenshotTop.jpg" alt="Screenshot Top Part" /> 

我無法顯示在所有的JPG(甚至當設置baseURL作爲一些其他問題/答案建議)。但是,當我將圖形格式更改爲PNG並引用該文件時,請執行以下操作:

<img src="ScreenshotTop.png" alt="Screenshot Top Part" /> 

一切正常。這是否意味着UIWebView可以正確顯示PNG,但無法使用JPG?或者還有其他事情正在發生?

(FWIW,我使用的XCode 4.1和iOS的模擬器4.3.2。)

回答

1

不認爲這與PNGJPG圖像做。使用相對路徑或file:路徑來引用圖像不適用於UIWebView。相反,你必須到HTML載入觀與正確的基本URL:

NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSURL *baseURL = [NSURL fileURLWithPath:path]; 
[webView loadHTMLString:htmlString baseURL:baseURL]; 

然後,您可以參考你的圖片是這樣的:

<img src="myimage.png"> 

或者從CSS中是這樣的:

background-image: url(loading.gif) 

重要的是要注意,即使將您的應用程序包中的圖像放在項目的Images目錄中,它們也位於該包的根目錄下。

查看here瞭解更多信息。

+0

這就是我的想法。我只是重新檢查了我的代碼,除了調用requestWithURL之外,我什麼都沒做。如果有一個.jpg引用,它不起作用,如果有一個對.png的引用,它會。我仍然很困惑...... – Thorsten

+0

你可以做一個乾淨的構建和再次測試這個場景。也許一些舊的緩存文件造成一些混淆? –

+0

沒有變化。我甚至在模擬器中刪除了應用程序並重新運行..仍然是相同的(奇怪的)行爲。 – Thorsten

相關問題