これは私が作ったレポです。
https://github.com/lifesaglitch/UIWebViewFlashWhite
基本的な考え方は次のとおりです。
ヘッダー セルとコンテンツ セルの 2 つのセルを含む展開可能なテーブル ビューがあります。
ヘッダー セルをクリックすると、コンテンツ セルが挿入され、コンテンツ セルのサブビューである Web ビューに HTML 文字列が読み込まれます。
初めてセルを展開した場合、Web ビューには正しいフレーム サイズで白いフラッシュが表示されます。後続のエキスパンドにもフラッシュがある可能性がありますが、フレーム サイズが間違っています。
私が(プロジェクトで)試したのは、色をクリアに設定することですが、機能しません。また、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 を非表示にし、ロード時に再表示しますが、まだ白いフラッシュ スクリーンが表示されます。