2013-03-19 46 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