这是我做的回购。
https://github.com/lifesaglitch/UIWebViewFlashWhite
基本思想是:
我有一个可扩展的表格视图,有 2 个单元格:标题单元格和内容单元格。
当单击标题单元格时,我插入一个内容单元格,并将一个 html 字符串加载到 Web 视图,这是内容单元格的子视图。
如果这是我第一次展开单元格,则 Web 视图会出现白色闪烁,并且帧大小正确。后续展开可能会有flash,但帧大小不对。
我尝试过(在项目中)将颜色设置为清除,这是行不通的。我还尝试了一个webview的委托,在加载html字符串后设置hidden = NO,但有时不调用委托回调。也许是因为可重用机制。
请从上面的链接下载我的项目并尝试一下。
以下是一些示例代码:
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
self.backgroundColor = [UIColor clearColor];
self.contentView.backgroundColor = [UIColor clearColor];
}
return self;
}
数据源方法:
ContentCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ContentCell"];
[cell.contentView loadHTMLString:@"<html><body style='background-color: #ff0000'>this is contentasdoifjoiwjeofiqjweoifjqopweifj </body></html>" baseURL:nil];
编辑:
我已经提交了一个新版本:先用占位符隐藏webview,加载后取消隐藏,但还是有白闪屏。