我正在创建一个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视图的高度。
答案 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启用了用户交互。