当使用UIWebView重载数据时UITableView闪烁

问题描述:

嗨!我正在使用UITableView和UITableViewCell。 UITableViewCell里面有一个UIWebView(因为我使用实体,粗体文本,ecc ...)。当使用UIWebView重载数据时UITableView闪烁

web视图装入该代码:

UIWebView *testoLabel2 = (UIWebView*)[cell viewWithTag:3]; 
NSString *html = [NSString stringWithFormat:@"<html><font size=2>%@</font></body></html>", sottotitolo]; 
testoLabel2.opaque = NO; 
testoLabel2.backgroundColor = [UIColor clearColor]; 
[testoLabel2 loadHTMLString:html baseURL:nil]; 

什么问题? ,当我需要重新加载数据(例如时deviceOrientation变更后)使用

[my_table reloadData]; 

所有的web视图眨眼! 只需一秒钟,但他们眨眼!这是一个非常丑陋的效果!

你知道为什么吗? 谢谢!

编辑:此外,如果我向下滚动tableview,当我向上滚动webview,加载之前是白色的!但只是一会儿,他们加载文本后!

+0

UIWebView是可滚动的吗? – 2011-04-14 20:31:34

+1

这是因为webViews loadHtmlString异步执行。我遇到了同样的问题,我发现的唯一解决方案是使用接受html的richText并将其替换为webView。 – aryaxt 2011-10-20 15:46:11

不确定原因,但最好将单元格中的所有视图背景都设置为纯色。 Flash可以是渲染它的背景的单元格,然后是网页视图。如果你将webview背景设置为你想要的颜色并且不透明,那么这不应该发生。祝你好运!

+0

不,不幸的是,删除'testoLabel2.opaque = NO;'和'testoLabel2.backgroundColor = [UIColor clearColor];'没有任何改变! – JAA 2011-04-14 20:38:30

+0

好的,这可能没有解决你的问题,但它仍然是正确的事情做表视图性能。 – XJones 2011-04-14 20:43:41

+0

对此的另一个想法是,你提到在设备方向改变时调用'reloadData'。你不应该这样做。您应该只在_data_实际更改时重新加载数据。如果您只是将相同的内容加载到Web视图中,则会强制Web视图在定位动画发生时加载和呈现它自己。 – XJones 2011-04-14 20:53:09