さて、私はこの質問が尋ねられ、尋ねられたことを知っています。多くの良い提案がありますが、これを期待どおりに機能させることはできません。さまざまな html に基づいて、負荷時に高さを動的に設定できるテーブルビュー セルを作成しようとしています。誰もが提案するのは、次の方法を使用することです。
-(void)webViewDidFinishLoad:(UIWebView *)webView
彼らは、以下のようにjavascriptを使用して高さを計算すると言います:
NSString *output = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"];
または、次のようなことを行います(私はこれを作成しました):
self.webView = webView;
CGRect frame = webView.frame;
frame.size.height = 1;
webView.frame = frame;
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
webView.frame = frame;
これらのメソッドはどちらも Web ビューの正しい高さを返しますが、テーブルビューが初期化された後に発生します。この webViewDidFinishLoad は、heightForRowAtIndexPath メソッドの後に呼び出されます。したがって、テーブルが作成されているとき、セルの高さはありません。それで、誰もがうまく言ったら、webViewDidFinishLoad内でテーブルビューのリロードを実行するだけでうまくいきますが、ラグがあり、その部分に到達するとテーブルビューのスクロールが途切れることになるため、私はこれが好きではありません. どうすればこれを修正できますか? そしてそれを滑らかにしますか?ビューをロードする前に、どうにかしてWebビューの高さを決定することを考えていましたが、どうすればよいかわかりません。また、html をプレーン テキスト文字列に変換しようとしましたが、html にはスペースなどが含まれているのにプレーン テキストには含まれていないため、高さが正しくありません。どんな助けでも大歓迎です!