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



我正在创建一个网络视图来显示我的应用程序中的一些文本。

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];

这是我将其放入我的应用程序的一组代码。

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

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

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

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

此方法

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

试试 -

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

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

你可能想要这个:

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

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

最新更新