2011-04-14 48 views
1

嗨!我正在使用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

回答

0

不確定原因,但最好將單元格中的所有視圖背景都設置爲純色。 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