HTML コンテンツに基づいて UIWebview の高さを設定したい。文字列のサイズを取得していますが、段落、太字、異なるフォント サイズなどのために実際のサイズを取得できません。
質問する
20887 次
5 に答える
13
私は通常、これらのメソッドを使用して、UIWebview
フレームをコンテンツ サイズとして設定します。
- (void)webViewDidStartLoad:(UIWebView *)webView {
CGRect frame = webView.frame;
frame.size.height = 5.0f;
webView.frame = frame;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
CGSize mWebViewTextSize = [webView sizeThatFits:CGSizeMake(1.0f, 1.0f)]; // Pass about any size
CGRect mWebViewFrame = webView.frame;
mWebViewFrame.size.height = mWebViewTextSize.height;
webView.frame = mWebViewFrame;
//Disable bouncing in webview
for (id subview in webView.subviews) {
if ([[subview class] isSubclassOfClass: [UIScrollView class]]) {
[subview setBounces:NO];
}
}
}
がコンテンツのロードを完了すると、(webView
のデリゲートをこのクラスに設定した場合) 自動的に呼び出されます。WebView
于 2012-10-16T12:41:39.470 に答える
8
すべての Web ビューには UIScrollView が組み込まれているので、ページが読み込まれるのを待ってから、スクロール ビューの contentSize プロパティをタップしてページの高さを取得します。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
CGFloat height = webView.scrollView.contentSize.height;
}
于 2013-08-08T11:33:08.683 に答える
6
このコードを試してください
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
height= [[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
}
于 2012-10-16T12:58:49.007 に答える
1
- (void)viewDidLoad
{
[super viewDidLoad];
webview.delegate = self;
[webview loadHTMLString:@"<div id='foo' style='background: red'>The quick brown fox jumped over the lazy dog.</div>" baseURL:nil];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *output = [webview stringByEvaluatingJavaScriptFromString:@"document.getElementById(\"foo\").offsetHeight;"];
NSLog(@"height: %@", output);
}
于 2012-10-16T12:42:16.850 に答える