0

我正在创建一个 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 view的高度。

4

4 回答 4

1

尝试 -

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

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

于 2012-11-12T10:15:16.173 回答
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 可能会由于完成加载的图像而改变大小。

于 2012-11-12T09:47:04.367 回答
0

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

于 2012-11-12T08:26:08.530 回答
0

你可能想要这个:

[webView.scrollView setContentInset:UIEdgeInsetsMake(0, 0, 20, 0)];
于 2012-11-12T08:16:50.937 回答