根据内容大小更改UIWebView的高度

时间:2012-11-12 08:10:33

标签: iphone ios uiwebview

我正在创建一个webview,以便在我的应用中显示一些文字。

CGRect frame = CGRectMake(lblContent.frame.origin.x, 
                          lblContent.frame.origin.y,
                          lblContent.frame.size.width,
                          lblContent.frame.size.height);

NSString *htmlText = HTML_DIV_TAG;
htmlText = [htmlText stringByAppendingFormat:@"%@%@", _artistDetail.strContent, @"</div>"];
htmlText = [htmlText stringByReplacingOccurrencesOfString:@"''" withString:@"'"];

UIWebView *webView = [[UIWebView alloc]initWithFrame:frame];
[webView loadHTMLString:htmlText baseURL:nil];
webView.scrollView.bounces = NO;
[self addSubview:webView];

这是我把它放入我的应用程序的代码集。

但需要根据内容大小调整Web视图的高度。

4 个答案:

答案 0 :(得分:1)

如果设置webview.delegate = self,则可以添加UIWebViewDelegate协议方法webViewDidFinishLoad:并调用一小段javascript来确定高度:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSString *output = [webview stringByEvaluatingJavaScriptFromString:@"document.body. scrollHeight;"];
    NSLog(@"height: %@", output);
}

另一种方法是在此方法中确定webView的scrollView contentSize,因为在调用此方法时它应该适合整个网站。

此方法的唯一问题是,当完成加载时会调用此方法。图像的处理方式不同,这意味着webView可能会因完成加载的图像而改变大小。

答案 1 :(得分:1)

尝试 -

 float height=   [iText sizeWithFont:[UIFont fontWithName:@"FontSpecifiedInTheHtmlText" size: -SpecifiedInHTMLText- constrainedToSize:CGSizeMake(320, 100000)lineBreakMode:UILineBreakModeWordWrap].height;

在获取内容文本的高度后,您可以设置WebView的框架/边界。

答案 2 :(得分:0)

你可能想要这个:

[webView.scrollView setContentInset:UIEdgeInsetsMake(0, 0, 20, 0)];

答案 3 :(得分:0)

UIWebview是可滚动的。因此,当您在UIWebview中打开页面时,您无需根据页面内容调整高度。您可以通过滚动UIWebView来查看所有内容。您应该检查是否为您的webview启用了用户交互。