2

可変高さの を保持する UITableView がUIWebViewあり、ユーザーは各 Web ビューのコンテンツを編集できます。各セルのコンテンツ (Web ビュー) はNSManagedObject、コンテンツの高さが として格納されているサブクラスにリンクされていcontentHeightます。新しいコンテンツ セットが最初に作成されると、設定された高さを持つデフォルトのデータ セットが入力されるため、問題はありません。

私の問題は、ユーザーが Web ビューのコンテンツを編集するときに発生します。新しいコンテンツの高さを把握し、それに応じてテーブルビューを更新する必要があります。対応するオブジェクトの保存された変数を更新するためのロジックを既にセットアップしましたcontentHeightが、新しいコンテンツの高さを決定するための信頼できる方法が見つかりません。以下に、私が試したがうまくいかなかった方法のいくつかをリストしました。どんな助けでも大歓迎です、私は今1時間以上困惑しています:(

失敗した方法:

[[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollHeight"] floatValue];

[[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];

[[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];

[[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('sdcontent').offsetHeight"] floatValue];

CGRect webViewFrame = [webView frame];
CGRect temp = webViewFrame;
webViewFrame.size.height = 1;
[webView setFrame:webViewFrame];
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
webViewFrame.size = fittingSize;
[webView setFrame:temp];
4

1 に答える 1

2

それは動作しますが、

  • Webビューを小さくする(5pxなど)
  • それをロードし、終了を待ちます
  • 次にsizeToFitを呼び出します
  • サイズを取得する

広告::Dこれに苦労しているgithubのM42WebviewTableViewCellクラスを参照してください

于 2012-11-24T10:59:11.690 に答える