我在动态设置 UIWebView
的高度时遇到问题。 Web View 加载包含 html 的产品描述。我希望 UIWebView
根据描述的内容改变它的高度。父 ScrollView 也应该改变它的高度,但是基于 UIWebView
的高度。
任何人都可以向我解释如何实现我的观点的预期行为吗?
这是我的 View 层次结构:
最佳答案
您必须在名为 webViewDidFinishLoad 的 UIWebView 的委托(delegate)方法中添加一些代码。以下是您可以执行的操作:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
CGRect frame = webView.frame;
frame.size.height = 1;
webView.frame = frame;
CGSize fittingSize = [webView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
webView.frame = frame;
NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);
yourScrollView.contentSize = webView.bounds.size;
}
同样的事情也可以使用 javascript 来找到正确的高度,如下所示:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
CGRect oldBounds = [[self webView] bounds];
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.height"] floatValue];
NSLog(@"NEW HEIGHT %f", height);
[webView setBounds:CGRectMake(oldBounds.origin.x, oldBounds.origin.y, oldBounds.size.width, height)];
yourScrollView.contentSize = webView.bounds.size;
}
希望对您有所帮助!
关于iphone - 具有自动布局的 UIWebView 的动态高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18355368/