2013-03-19 67 views
2

在我的應用程序中,我使用了UIWebView作爲關於屏幕。我做了使用在UIWebView中無法使用的文本

webView.opaque = NO; 
webView.backgroundColor = [UIColor clearColor]; 

背景透明但由於某些原因很少(1出於20)在UIWebView中的文本將inivible。它仍然存在,因爲滾動條是正確的,我也可以複製文本,但你看不到它。如果我禁用透明背景,那就沒問題。

有沒有其他人遇到這種行爲?

更新:只是禁用透明度。這與它無關。所以實際上我有一個UIWebView,有時文本是不可見的。

解決方法:我找到了解決方法,但我不知道它爲什麼起作用。我在我的應用程序中做的是在初始化過程中預加載所有的UIWebViews,以便稍後當我調出這些視圖時,不會有任何延遲。我強制控制器通過調用self.view = self.view來觸發viewDidLoad。在此之後,一個UIWebView這是在我的筆尖子視圖被加載,我可以使用預裝

[_webView loadHTMLString:html baseURL:url]; 

這是我的加載HTML原代碼到我的UIWebView的HTML。現在我已經切換到

[_webView loadRequest:urlRequest]; 

並且這一直工作。有時候,當我速度夠快時,當文本尚未完全預裝時,可以看到文本彈出視圖。有了loadHTML,看起來有時文本還沒有被加載,但彈出步驟不會被執行。

因此,似乎用loadHTMLString預加載有時會導致文本未被加載,而loadRequest將始終成功。誰能解釋這種行爲?我很好奇它們有什麼不同。

+0

'webView.opaque = NO;' - 這不是真的讓整個視圖消失嗎? – 2013-03-19 09:09:26

+0

不,只有背景:http://stackoverflow.com/questions/3646930/how-to-make-a-transparent-uiwebview – Gottfried 2013-03-19 09:16:12

+0

我也遇到過這種情況。對所有內容使用loadRequest不是一個選項,因此我使用loadRequest作爲基本頁面,但隨後使用document.body.innerHTML =「some content」設置了它的內容 – Saltymule 2014-01-23 16:08:09

回答

0

在您的HTML或CSS中,您應該明確定義文本的顏色。 請參閱下面的示例HTML代碼。

<html> 
<head> 
<style css="text/css"> 
p {color: white} 
</style> 
</head> 
<body style="background-color: transparent;"> 

<h3> 

<p> 
YOUR TEXT WILL GO HERE... 
</p> 

</h3> 
</body> 
</html> 
+0

試過了,沒有任何影響。這很奇怪,因爲大部分時間都是這樣。 – Gottfried 2013-03-19 09:23:07